zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

利用travis同步gcr.io镜像到dockerhub
项目地址https://github.com/zhangguanzhang/gcr.io/tree/master 利用gcloud sdk去查看谷歌镜像站的镜像,获取每一个镜像的tag后改名推送到自己的dockerhub上面全部是shell思路,脚本一旦写完就需要不断的执行去同步了,所以借用travis去构建两个分支,一个master分支和一个构建分支travis触发构建后拉取仓库后,切换到构建分支,pull构建分支,然后同步镜像 脚本我写了两种https://github.com/zhangguanzhang/bash/tree/master/google_containers_syn...
记录一次线上k8s节点故障
邮件收到zabbix的告警,业务的网页登陆状态不是200,后面又自愈了 说明服务挂掉过一次,登陆到机器上发现集群有台节点状态是nodelost状态上去看到相关服务都挂掉了然后排查到根分区占满了,排查到是k8s日志堆满了/var/log/ 12345678910111213141516[root@cloudos02 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 219G 216G 0 100% /devtmpfs ...
kubernetes's Job总结和实战以及坑
Job有三种主要类型的 Job: Job的Pod运行完可以看到状态为Completed,低版本需要在get pod的时候添加-a或者--show-all才能看到job创建的pod 下面实例先创建一个固定完成数量2,并行数量4的Job 12345678910111213141516171819202122232425262728293031[root@k8s-m1 k8s]# cat job.yml apiVersion: batch/v1kind: Jobmetadata: name: test-jobspec: completions: 2 parallelism: 4...
kubernetes的PodAffinity的不解
官方文档来看是下面的说法,摘自官方文档https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ An example of a pod that uses pod affinity: 1234567891011121314151617181920212223242526272829apiVersion: v1kind: Podmetadata: name: with-pod-affinityspec: affinity: podAffinity: requiredDuringSchedul...
[转载+修正]Kubernetes v1.10.x HA全手动苦工安装教学
转载自https://kairen.github.io/2018/04/05/kubernetes/deploy/manual-v1.10/作者文章的安装步骤文字是复制作者的1.8的安装步骤然后改的,安装过程变了部分,但是文字没有改正过来。 此过程我写了ansible安装部署方案,地址(一些文件下载不了的话可以去下面的github里找对应的文件) 多master高可用版 单master版 本文内容所有url都没改过,以下的添加的内容是我的建议和安装的经验 本文里如果有些范围不知道在哪台主机上执行请看前后命令都可以判断出,不清楚的请下面评论我会更新 以下我转载过来并修改+上我的提醒 管...
kubernetes的configMap文件挂载不同的路径且不覆盖目录的解决方法
看到configMap这个资源对象,突发奇想 如何让一个configMap里文件挂载到容器的不同路径 书上和网上都找不到对应例子 最终github上搜索到了有个subPath选项除了支持路径还不会覆盖容器内部的整个目录参考链接https://github.com/dshulyak/kubernetes.github.io/commit/d58ba7b075bb4848349a2c920caaa08ff3773d70这里记录下 123456789101112131415161718192021222324252627282930313233343536373839404142434...
使用管理网当作业务网keepalived VIP的心跳线
客户的业务情况如下,我们连的 vpn2 上去部署的业务,一开始三台机器,上面只有 NC1 这一个网卡,客户给了个 vip 让我们配置上,说 vip 两个 vpn 都能访问到。后面实际配置完发现不通,沟通了一番了解清楚网络后,使用了如下方案。 NC1 的网络是 172.18.27.252/25 via 172.18.27.129 是默认路由,NC2 是 172.18.27.99/25 via 172.18.27.1,两个网卡不同的 vlan,172.18.27.0/25 的网络里没有多少 IP 了,所以拿来做 VIP 的话得用 NC1 做心跳线。 123456789101112131415...
docker无法删除掉镜像的解决方法
碰到了docker rmi无法删除掉image的问题版本如下 12[root@guanvps ~]# docker --versionDocker version 17.12.1-ce, build 7390fc6 问题如下,也没有任何容器在运行,重启发现依然无法删除掉 12345678[root@guanvps ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest ...
慎用docker的--rm选项!!!
Dockerfile里的VOLUME和docker run -v /path的时候挂载容器的挂载点效果是一致的会在宿主机/var/lib/docker/volumes目录生成随机目录发现--rm不单单是删除掉容器,还会删掉挂载点的数据 首先不使用--rm下看看效果 1234567891011[root@guan_tx ]# docker run -tid --name busybox -v /guan busyboxbe59bd455fbde8a8d195220d96c6676ad8fa6f26e1ebac6533020c83dacbf907[root@guan_tx ]#...
docker容器访问宿主机
有时候使用docker容器的时候经常有需要访问宿主机ip的需求,虽然可以用宿主机网卡的ip访问,但是有时候有些人的宿主机ip是dhcp方式通用方法就是给宿主机加个不可达的回环地址,然后容器的host指向这个回环地址(容器host这步是可选的)(PS:1.1.1.1这个地址在2018/04初成为了公共DNS所以能ping通了,不过思路还是一样的)环境如下 123456[root@guanvps ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@guanvps ~]# uname ...
docker容器网络互联
官方文档说–link将来会被废弃,而且确实很鸡肋,有时候还要进去容器改东西。在 1-2 年前,Docker 所有容器都连接于默认的桥接网络上,也就是很多老文章鼓捣的 docker0 桥接网卡。因此实际上默认情况下所有容器都是可以互联的,没有隔离,当然这样安全性不好。而服务发现,是在这种环境下发展出来的,通过修改容器内的 /etc/hosts文件来完成的。凡是 --link 的主机的别名就会出现于 /etc/hosts 中,其地址由 Docker 引擎维护。因此容器间才可以通过别名互访。但是这种办法并不是好的解决方案,Docker 早在一年多以前就已经使用自定义网络了。在同一个网络中的容器...
centos7 的一些常见软件的安装 mirror
ffmpeg123456https://rpmfusion.org/mirror list:https://mirrors.rpmfusion.org/mm/publiclist/#CAhttp://mirrors.ustc.edu.cn/rpmfusion/free/el/ 腾讯的 mirror: 1https://mirrors.cloud.tencent.com/help/rpmfusion.html 安装: 12yum install -...
lua列出所有upsteam
需要在http的路由上暴露出所有的upsteam配置段 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758upstream names{ server 127.0.0.1:8050 ; server 127.0.0.1:8060 ;}upstream tuling { server 127.0.0.1:8051 weight=5; server 127...
bash自定义补全
总结下bash的补全 终端下按两次tab就是补全 补全常见的分为下面几种场景: 第一部分的命令补全 命令补全后补全路径到文件 变量补全 类似systemctl命令的选项补全 当然bash支持自定义补全,也就是让我们实现和systemctl命令那样补全 假设我们要systemctl disable --now firewalldsystemctl空格后按tab键会显示systemctl的第二个部分的所有支持的选项此时继续输入di按tab键会补全成systemctl disable,输入--now(相似的太多了,所以基本输入完)补全,当然最后的服务名此时补全不了,因为systemctl...