miaoyun+Rancher+K8S学习与实践


02 秒云问题汇总

[TOC]

秒云安装包下载使用办法

在阿里云上申请  对象存储 OSS
按量很便宜

1 大文件分割命令

拆分镜像包
将大文件按照规定的大小分卷打包压缩
tar -zcf - filename | split -b xxx - outfilename.tar.gz
xxx是你想要的每个包的大小,只输入数字默认单位是byte
输入数字+K,单位是KB
输入数字+M,单位是MB
输入数字+G,单位是GB

解压缩命令是:
cat outfilename.tar.gz* | tar -zx

2 系统资源不够

2.1 当CPU+MEM资源不够时的现象之一

当CPU+MEM不够时表现的特征有:秒云页面响应慢,甚至刷新不出页面。不能正常提供服务,如服务异常导致web打不开等异常现象。

2.2 磁盘空间不足导至无法启动秒云

当可用磁盘空间(/var/lib/docker)少于20%情况下,秒云无法启动。有时web能访问,但很多秒云组件没启动起来。所以,在磁盘空间不够情况下,清理出磁盘空间或扩容磁盘空间后,重启秒云主机让秒云所有组件重启一次。

2.3 秒云删除镜像并正确释放磁盘空间

镜像管理页中删除镜像,但未见磁盘空间释放:这里删除只是在页面上删除了这些个版本,镜像的layer层并没有删除,进入“系统视角/系统设置/镜像仓库垃圾回收”,执行镜像仓库垃圾回收。

3 容器报错页面上删除不掉处理办法

当碰到容器由于报错在秒云web页面上删除不掉时,可以在秒云web页面的kubectl控制台用命令删除。

3.1 根据容器组(pod)名称查找

kubectl get pods |grep et-trusted-55c9c4c96b-rkxzn

3.2 强制删除pod

kubectl delete pods et-trusted-55c9c4c96b-rkxzn --grace-period=0 --force

4 K8S集群有一台完全未被使用

检查该主机是否存在污点,有则删之。

5.问题:

admin登录/系统视角/控制台,部署模式:高可用 主:172.16.7.65 备:离线 同时,admin登录/系统视角/授权管理、申请授权许可中的硬件特征码只有一行,正确是两行特征码。 此问题是没有安装好, 解决办法: 只要把离线主机重装秒云即可 卸载秒云

my undeploy
docker volume prune
``
安装秒云
```bash
my deploy --backup
my stack keepalived

5.2 高可用秒云(20.03版本)主节点关机后,再重启问题:

秒云20.03版本,高可用秒云的主节点关机后,主动被备节点接管成为主节点,重启原主节点后,需要手工执行如下命令:

docker start miaoyun.keeper

这个容器起来后,会自动拉起其他的容器。

5.3 正常运行的高可用秒去主备节点容器运行情况:

主节点

所有容器都运行

备节点 除下面三个不要启动,其它均在运行

CONTAINER ID  IMAGE                                  COMMAND                 CREATED       STATUS                    PORTS  NAMES
ab304ecb6881  127.0.0.1:20405/chiwen                 "/opt/chiwen/bin/chi…"  2 hours ago   Exited (143) 2 hours ago         miaoyun.chiwen
4cc34e97585e  127.0.0.1:20405/chiwen-jenkins-master  "/sbin/tini -- /usr/…"  2 hours ago   Exited (143) 2 hours ago         miaoyun.jenkins-master
3dd267c3a62a  127.0.0.1:20405/chiwen-alertmanager    "/docker-entrypoint.…"  2 hours ago   Exited (137) 2 hours ago         miaoyun.alertmanager

5.4 秒云到期后

1.服务无法停机,开机,重启等操作,但可以删除应用。 2.configmap配置文件修改后,无法确证更改保存。 3.模板导出无响应。

5.5 国防科大军网备节点重启后秒云无法访问

当备节点12重启后,切换失败导致秒云不可用,临时解决办法:

当前解决方案如下,后续会出一个补丁包
    12备节点关机重启
    1、删除keepalived容器,docker rm -f miaoyun.keepalived
    2、手动启动keeper容器,docker start keeper
    3、启动keepalived容器,my stack keepalived

5.6 排查过程记录

12节点上:
    1、删除备节点keepalived,docker rm -f miaoyun.keepalived,查看VIP是否切换到主节点,且页面能正常访问
    2、卸载备节点,my undeploy ,选择"y",docker ps -a确认所有容器都已删除
    3、在离线安装包位置下,执行my deploy --backup,重新安装备节点
    4、启动备节点keepalived,my stack keepalived
    5、访问平台,系统视角下查看控制台,高可用信息主备都就绪

(1)查看容器状态

docker ps -a | grep miaoyun

(2)先把12的keeper手动起一下,看其他容器能起来不

docker start miaoyun.keeper

12那手动把vip先干掉,

ip addr del 10.10.32.21  dev eth0

手动把vip加到11上,

ip addr add 10.10.32.21 dev eth0

共享目录里面的,master-deployment-conf.json 中 HostIP 和MasterHostIP,都为11?

5.7 秒云存储卷丢失的解决办法

重装秒云

1、所有k8s节点执行:
chiwen-infra uninstall

2、秒云主备节点:
my undeploy

3、所有节点:
docker rm -f $(docker ps -aq)
docker rmi -f $(docker images -aq)
docker volume prune
rm -rf /etc/docker/certs.d
rm -rf /var/lib/miaoyun

5.8 容器调试工具命令

通过nc命令调试容器间的网络情况

nc -v -w 5 172.16.7.69  30005

5.9 集群离线主机在线

登录各计算节点,用命令查看

arp -na

对比VIP所在计算节占的MAC是否所有计算节点中的一台。否则表明VIP有冲突。

5.10 同一集群下采用calcio网络时计算节点主机IP不能跨网段

计算节点上运行的服务通过VIP访问不到。原因是创建业务集群时网络选用了calcio导致,因为网络选用calcio是不能跨网段的(秒云)。此时网络应该选flannel。 注意: 删除集群(Calico网络),再创建新集群(flannel),把计算节点加入到新集群前,需要把计算节点重启一下。

5.11 湖师大银行网关部署在VM上,访问容器的统一调度返回的是集群内网IP

1.容器组设置 打开“主机网络”开关 。 2.容器组中设置 亲和主机 3.使用主机IP(程序运行在那台的IP)+容器端口或service端口 -------------------可以这样试一下。 主机是超融合虚拟化,网络也要配置虚拟网络到银行专线 核心他们试着改不行,放弃了 最终解决办法: 搞一台跳板机,应该是端口转发,iptable可以实现 ,银行具体 怎么实现 的不知道

5.11 湖师大 unifypay-gateway 容器增加主机名+IP映射关系

方法一:修改应用yaml 在 应用unifypay-gateway的页面最右边,进入编译yaml菜单,在第二个spes:也是第二级spec:和containers:间添加如下内容,格式与当前spec:下的container同级对齐,如图: 方法二:修改工作负载yaml 方法三:修改模板 上面两种方法都会在删除应用后,再次部署服务,需要手工再添加。 最终采用的方法,给工作负载打补丁:

kubectl -n default patch  deployments unifypay-gateway-deploy-0 --patch '{
    "spec": {
        "template": {
            "spec": {
                "hostAliases": [
                    {
                      "hostnames":
                      [
                        "pay.hunnu.edu.cn"
                      ],
                      "ip": "202.197.118.101"
                    }
                ]
            }
        }
    }
}'

kubectl -n default patch  deployments unifypay-gateway-deploy-0 --patch '{
    "spec": {
        "template": {
            "spec": {
                "hostAliases": [
                    {
                      "hostnames":
                      [
                        "pay.hunnu.edu.cn"
                      ],
                      "ip": "202.197.118.102"
                    }
                ]
            }
        }
    }
}'

5.12 磁盘空间不足解决办法

在使用过程中,不断上传镜像产生的缓存需要清理,操作方法如下:

进秒云容器
docker exec -it miaoyun.chiwen bash
进目录,删除所有
cd /tmp
rm -rf *

另一种是镜像仓库中删除历史的镜像,然后进行垃圾回收 1、项目视角,镜像管理中删除历史镜像(不用的) 2、在系统视角下,系统设置/镜像仓库垃圾回收

页面列表

ITEM_HTML