miaoyun+Rancher+K8S学习与实践


02 秒云问题汇总

<p>[TOC]</p> <p>秒云安装包下载使用办法</p> <pre><code class="language-bash">在阿里云上申请 对象存储 OSS 按量很便宜</code></pre> <h1>1 大文件分割命令</h1> <pre><code class="language-bash">拆分镜像包 将大文件按照规定的大小分卷打包压缩 tar -zcf - filename | split -b xxx - outfilename.tar.gz xxx是你想要的每个包的大小,只输入数字默认单位是byte 输入数字+K,单位是KB 输入数字+M,单位是MB 输入数字+G,单位是GB 解压缩命令是: cat outfilename.tar.gz* | tar -zx</code></pre> <h1>2 系统资源不够</h1> <h2>2.1 当CPU+MEM资源不够时的现象之一</h2> <p>当CPU+MEM不够时表现的特征有:秒云页面响应慢,甚至刷新不出页面。不能正常提供服务,如服务异常导致web打不开等异常现象。</p> <h2>2.2 磁盘空间不足导至无法启动秒云</h2> <p>当可用磁盘空间(/var/lib/docker)少于20%情况下,秒云无法启动。有时web能访问,但很多秒云组件没启动起来。所以,在磁盘空间不够情况下,清理出磁盘空间或扩容磁盘空间后,重启秒云主机让秒云所有组件重启一次。</p> <h2>2.3 秒云删除镜像并正确释放磁盘空间</h2> <p>镜像管理页中删除镜像,但未见磁盘空间释放:这里删除只是在页面上删除了这些个版本,镜像的layer层并没有删除,进入“系统视角/系统设置/镜像仓库垃圾回收”,执行镜像仓库垃圾回收。</p> <h1>3 容器报错页面上删除不掉处理办法</h1> <p>当碰到容器由于报错在秒云web页面上删除不掉时,可以在秒云web页面的kubectl控制台用命令删除。</p> <h2>3.1 根据容器组(pod)名称查找</h2> <pre><code class="language-bash">kubectl get pods |grep et-trusted-55c9c4c96b-rkxzn</code></pre> <h2>3.2 强制删除pod</h2> <pre><code class="language-bash">kubectl delete pods et-trusted-55c9c4c96b-rkxzn --grace-period=0 --force</code></pre> <h1>4 K8S集群有一台完全未被使用</h1> <p>检查该主机是否存在污点,有则删之。</p> <h1>5.问题:</h1> <p>admin登录/系统视角/控制台,部署模式:高可用 主:172.16.7.65 备:离线 同时,admin登录/系统视角/授权管理、申请授权许可中的硬件特征码只有一行,正确是两行特征码。 此问题是没有安装好, 解决办法: 只要把离线主机重装秒云即可 卸载秒云</p> <pre><code class="language-bash">my undeploy docker volume prune `` 安装秒云 ```bash my deploy --backup my stack keepalived</code></pre> <h2>5.2 高可用秒云(20.03版本)主节点关机后,再重启问题:</h2> <p>秒云20.03版本,高可用秒云的主节点关机后,主动被备节点接管成为主节点,重启原主节点后,需要手工执行如下命令:</p> <pre><code class="language-bash">docker start miaoyun.keeper</code></pre> <p>这个容器起来后,会自动拉起其他的容器。</p> <h2>5.3 正常运行的高可用秒去主备节点容器运行情况:</h2> <p>主节点</p> <pre><code class="language-bash">所有容器都运行</code></pre> <p>备节点 除下面三个不要启动,其它均在运行</p> <pre><code class="language-bash">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</code></pre> <h2>5.4 秒云到期后</h2> <p>1.服务无法停机,开机,重启等操作,但可以删除应用。 2.configmap配置文件修改后,无法确证更改保存。 3.模板导出无响应。</p> <h2>5.5 国防科大军网备节点重启后秒云无法访问</h2> <p>当备节点12重启后,切换失败导致秒云不可用,临时解决办法:</p> <pre><code class="language-bash">当前解决方案如下,后续会出一个补丁包 12备节点关机重启 1、删除keepalived容器,docker rm -f miaoyun.keepalived 2、手动启动keeper容器,docker start keeper 3、启动keepalived容器,my stack keepalived</code></pre> <h2>5.6 排查过程记录</h2> <pre><code class="language-bash">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、访问平台,系统视角下查看控制台,高可用信息主备都就绪</code></pre> <p>(1)查看容器状态</p> <pre><code class="language-bash">docker ps -a | grep miaoyun</code></pre> <p>(2)先把12的keeper手动起一下,看其他容器能起来不</p> <pre><code class="language-bash">docker start miaoyun.keeper</code></pre> <p>12那手动把vip先干掉,</p> <pre><code class="language-bash">ip addr del 10.10.32.21 dev eth0</code></pre> <p>手动把vip加到11上,</p> <pre><code class="language-bash">ip addr add 10.10.32.21 dev eth0</code></pre> <p>共享目录里面的,master-deployment-conf.json 中 HostIP 和MasterHostIP,都为11?</p> <h2>5.7 秒云存储卷丢失的解决办法</h2> <p>重装秒云</p> <pre><code class="language-bash">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</code></pre> <h2>5.8 容器调试工具命令</h2> <p>通过nc命令调试容器间的网络情况</p> <pre><code class="language-bash">nc -v -w 5 172.16.7.69 30005</code></pre> <h2>5.9 集群离线主机在线</h2> <p>登录各计算节点,用命令查看</p> <pre><code class="language-bash">arp -na</code></pre> <p>对比VIP所在计算节占的MAC是否所有计算节点中的一台。否则表明VIP有冲突。</p> <h2>5.10 同一集群下采用calcio网络时计算节点主机IP不能跨网段</h2> <p>计算节点上运行的服务通过VIP访问不到。原因是创建业务集群时网络选用了calcio导致,因为网络选用calcio是不能跨网段的(秒云)。此时网络应该选flannel。 注意: 删除集群(Calico网络),再创建新集群(flannel),把计算节点加入到新集群前,需要把计算节点重启一下。</p> <h2>5.11 湖师大银行网关部署在VM上,访问容器的统一调度返回的是集群内网IP</h2> <p>1.容器组设置 打开“主机网络”开关 。 2.容器组中设置 亲和主机 3.使用主机IP(程序运行在那台的IP)+容器端口或service端口 -------------------可以这样试一下。 主机是超融合虚拟化,网络也要配置虚拟网络到银行专线 核心他们试着改不行,放弃了 最终解决办法: 搞一台跳板机,应该是端口转发,iptable可以实现 ,银行具体 怎么实现 的不知道</p> <h2>5.11 湖师大 unifypay-gateway 容器增加主机名+IP映射关系</h2> <p>方法一:修改应用yaml 在 应用unifypay-gateway的页面最右边,进入编译yaml菜单,在第二个spes:也是第二级spec:和containers:间添加如下内容,格式与当前spec:下的container同级对齐,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/34e275ba411249824437040aa997b6ec" alt="" /> 方法二:修改工作负载yaml <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/5524ea6580f5eebc2508f4b07eaefed9" alt="" /> 方法三:修改模板 上面两种方法都会在删除应用后,再次部署服务,需要手工再添加。 最终采用的方法,给工作负载打补丁:</p> <pre><code class="language-bash">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" } ] } } } }'</code></pre> <h2>5.12 磁盘空间不足解决办法</h2> <p>在使用过程中,不断上传镜像产生的缓存需要清理,操作方法如下:</p> <pre><code class="language-bash">进秒云容器 docker exec -it miaoyun.chiwen bash 进目录,删除所有 cd /tmp rm -rf *</code></pre> <p>另一种是镜像仓库中删除历史的镜像,然后进行垃圾回收 1、项目视角,镜像管理中删除历史镜像(不用的) 2、在系统视角下,系统设置/镜像仓库垃圾回收</p>

页面列表

ITEM_HTML