专栏首页TKETKE操作指南 - 容器化业务操作排错总结(十七)
原创

TKE操作指南 - 容器化业务操作排错总结(十七)

以下是针对wordpress 容器化,在操作过程中可能出现的问题,进行了总结。

问题一:docker push无法上传。

问题描述:docker push提示没有权限上传基础镜像至腾讯云Docker仓库。

解决方案:需要先登录远程仓库后,再进行上传。

问题二:构建失败。

问题描述:构建一直显示正在构建,且控制台显示空白,没有提示。

解决方案:检查Dockerfile第一行,镜像地址是否正确。

问题三:wordpress下的nginx容器挂载主机目录,启动失败。

问题描述:nginx容器启动失败,在工作负载中---Deployment---wordpress---日志提示:找不到/data/logs/nginx目录

解决方案:1.修改yaml文件,找到将"- mountPath: /data/logs" 修改为"- mountPath: /data/logs/nginx",点击完成即可。

2.在新建工作负载时,nginx实例中挂载路径要填写/data/logs/nginx,子路径填写nginx。

问题四:nginx容器启动失败。

问题描述:nginx容器启动失败,在事件中看到容器一直在不断重启。

解决方案:容器服务要已守护进程的方式启动,检查基础镜像中的/etc/nginx.conf配置文件,添加daemon off;

问题五:php容器启动失败。

问题描述:php容器启动失败,在事件中看到容器一直在不断重启。

解决方案:容器服务要已守护进程的方式启动,检查基础镜像中的/etc/php-fpm.conf的配置文件,修改daemonize=no

问题六:wordpress 容器服务部署成功,但是在浏览器访问php页面未更新。

问题描述:wordpress 容器服务部署成功,但是在浏览器访问php页面未更新。

解决方案:登录wordpress 容器控制台,检查php代码是否更新。

问题七:k8s集群报错Orphaned pod found - but volume paths are still present on disk

问题描述:今天在排查一个问题发现集群内节点非正常移除,被调度为not ready,集群上的服务运行在此节点上的状态都变成了unknown or nodelost导致有些服务无法正常运行了。

解决方案:先将异常节点剔除了,把服务调度正常后,查看kubectl,/var/log/syslog(ubuntu的messages)发现一直在刷以下的报错,从错误信息可以推测到,这台计算节点存在一个孤儿Pod,并且该Pod挂载了数据卷(volume),阻碍了Kubelet对孤儿Pod正常的回收清理,所以我们要清理该孤儿pod。

通过id号,进入kubelet的目录,可以发现里面装的是容器的数据,etc-hosts文件中还保留着podname

# cd /var/lib/kubelet/pods/86d60ee9-9fae-11e8-8cfc-525400290b20

/var/lib/kubelet/pods/86d60ee9-9fae-11e8-8cfc-525400290b20# ls
containers  etc-hosts  plugins  volumes

/var/lib/kubelet/pods/86d60ee9-9fae-11e8-8cfc-525400290b20# cat etc-hosts 
# Kubernetes-managed hosts file.
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
fe00::0	ip6-mcastprefix
fe00::1	ip6-allnodes
fe00::2	ip6-allrouters
172.16.1.180	omc-test-2509590746-mw56s

最后要删除该pod信息

# rm -rf 86d60ee9-9fae-11e8-8cfc-525400290b20

问题八:容器挂载NFS操作如下:

Events:
Type Reason Age From Message
Warning FailedMount 5m (x36 over lh) kubelet, 172.16.2.7 (combined from similar events): MountVolume.Setup failed for volume "runtime" : mount failed: exit status 32 
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/8b986f57-ff44-lle8-93d9-Oa587f800f51/voluines/kubernetes.io-nfs/runtime --scope -- mount -t nfs 172.16.3.6:/tspms/ts-development/ 
runtime /var/lib/kubelet/pods/8b986f57-ff44-lle8-93d9-Oa587f800f51/voluines/kubernetes.io-nfs/runtime
Output; Running scope as unit run-r6921855d6e6943fea742c4397f65d90e.scope._______________________________
mount.nfs: access denied by server while mounting 172.16.3.6:/tspms/ts-development/runtime
—Warning—FailedMount—12s (x36 over lh)—kubelet, 172.16.2.7—Unable to mount volumes for pod "tspms-5c97cb47bc-jzhkd_ts-development(8b986f57-ff44-lle8-93d9-Oa587f800f51)": timeout expired waiting for volumes to a 
ttach or mount for pod "ts-development'7"tspms-5c97cb47bc-jzhkd".list of unmounted volumes=[runtimeJ.list of unattached volumes=[runtime default-token-wfhg7) 

问题描述:挂载NFS v3版本 一定要加上fsid

nfs 挂载格式:

v4:
mount -t nfs4 vip:/ /localdir

v3:
mount -t nfs -o vers=3 vip:/fsid /localdir

解决方案:

总结来说 用v3挂载一定要加上fsid,在本文中对应为8pw2jq8u,具体的还得参照你cfs中对应的fsid

mount -t nfs 172.16.3.6:/8pw2jq8u/tspms/ts-development/runtime

那么要解决真正的问题,把服务启动正常,把yaml文件中volume的path调整为含有fsid的格式。

在yaml文件的体现为:

  volumes:
  - name: runtime
    nfs:
      path: /8pw2jq8u/tspms/ts-development/runtime
      server: 172.16.3.6

最后总结一点,在控制台中应该如何展示呢?其实还是一样的,在nfs ip后面加上fsid即可,fsid在cfs界面中获取。

问题九:kubernetes 基础集群排障

问题描述:集群状态及日志查看命令

解决方案(命令):

//node节点状态查看
# kubectl get nodes  //查看 Node 状态
# kubectl describe node 10.0.0.10   //查看 Node 节点状态,节点IP为10.0.0.10

//pod状态查看
# kubectl get pods -o wide    //查看pod状态
# kubectl -n kube-system get pods -o wide   //查看pod状态及运行节点
# kubectl describe pod nginx-2217866662-nhkqz  //查看 Pod 事件,kubectl describe pod <pod-name>


//k8s-dns状态查看
# PODNAME=$(kubectl -n kube-system get pod -l k8s-app=kube-dns -o jsonpath='{.items[0].metadata.name}')
# kubectl -n kube-system logs $PODNAME -c kubedns


//组件日志查看
# journalctl -l -u kubelet   //查看Kubelet 日志
# journalctl -l -u kube-proxy   //Kube-proxy 日志


原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TKE操作指南 - 容器业务部署标准化总结(十六)

    /data/logs/$module_name($module_name指应用名,一般为java应用)

    亮哥说TKE
  • TKE操作指南 - 使用TKE CVM容器集群的业务优势(七)

    2.用户可通过访问services IP或者ingress 域名直接访问容器应用。

    亮哥说TKE
  • TKE操作指南 - 部署wordpress 容器服务上(十)

    根据TKE操作指南 - 自动化构建,生成Wordpress Docker业务镜像(四)我们已经知道道nginx和php wordpress业务镜像地址

    亮哥说TKE
  • TKE操作指南 - 部署wordpress 容器服务下(十一)

    在进行wordpress Deployment的访问设置之前,我们先介绍TKE 容器化业务的访问方式!

    亮哥说TKE
  • TKE操作指南 - wordpress 容器监控讲解(十五)

    良好的监控环境为腾讯云容器服务高可靠性、高可用性和高性能提供重要保证。您可以方便为不同资源收集不同维度的监控数据,能方便掌握资源的使用状况,轻松定位故障。 腾讯...

    亮哥说TKE
  • TKE操作指南 - wordpress 容器配置项的使用(十二)

    配置用来规定一些程序在启动时读入设定,提供了一种修改程序设置的手段, 针对不同的对象可以使用不同的配置。

    亮哥说TKE
  • 中秋福利 | 15个系列100+篇超实用云原生原创干货合集(内含腾讯彩蛋)

    还有2天,就要迎来中秋小长假啦 这个中秋节你打算怎么过? ? 小云选择把这篇干货全部拿下! 云原生技术干货文章合集,来咯~ ? 2021 年,要说咱们技术圈...

    腾讯云原生
  • TKE操作指南 - 自动化构建,生成Wordpress Docker业务镜像(五)

    通过持续集成与持续交付提供优秀的 DevOps 环境,极大提高软件发布效率。如下图所示:

    亮哥说TKE
  • 3月容器产品技术月报|留言抢定制款T恤

    ? 2021年3月 ? ? VOL:11 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 3月上新 ?...

    腾讯云原生
  • 如何在容器服务中获取客户端真实源IP

    jokey,腾讯云容器产品工程师,热衷于云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 适用范围:腾讯...

    腾讯云原生
  • 腾讯云原生支撑起14亿人项目背后的技术揭秘

    ? 简述 从 2020 年 11 月 1 日开始,第七次全国人口普查工作进入到正式登记阶段,700 万普查员走街串巷,他们需要在 15 天内,对近 14 亿人...

    腾讯云原生
  • 手把手教你在 SuperEdge 上用 EdgeX Foundry 接入 IoT 设备

    连泓乔,华南理工计算机科学与技术大三在读,主要研究容器领域,Kubernetes、容器等云原生技术爱好者,SuperEdge 优秀贡献者。 王冬,腾讯云研...

    腾讯云原生
  • Fluid + GooseFS 助力云原生数据编排与加速快速落地

    谢远东,腾讯高级工程师,云原生机器学习社区 Kubeflow Member、 云原生数据编排与加速框架 Fluid(CNCF Sandbox) 核心开发者、Is...

    CNCF
  • Fluid + GooseFS 助力云原生数据编排与加速快速落地

    谢远东,腾讯高级工程师,云原生机器学习社区 Kubeflow Member、 云原生数据编排与加速框架 Fluid(CNCF Sandbox) 核心开发者、I...

    腾讯云原生
  • Fluid + GooseFS 助力云原生数据编排与加速快速落地

    Fluid 作为基于 Kubernetes 开发的面向云原生存算分离场景下的数据调度和编排加速框架,已于近期完成了 v0.6.0 版本的正式发布。腾讯云容器 T...

    冬夜先生
  • 6月月报|容器女团齐庆建党百年

    ? ‍ 2021年6月 ‍ ? ? VOL:14 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 ...

    腾讯云原生
  • 5月月报 | TKE 容器给大小儿童发礼物啦~

    ? 2021年5月 ? ? VOL:13 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 5月上新 ?...

    腾讯云原生
  • 腾讯云TKE1.18初体验

    作为腾讯云的老用户我大概是2018年开始使用腾讯云的tke服务的。当时是1.10,现在线上还有一个tke1.12的集群,鉴于早期更新迭代较慢。我选择了在腾讯云上...

    对你无可奈何
  • 如何构建万级Kubernetes集群场景下的etcd监控平台?

    周成,腾讯云工程师,主要负责腾讯 etcd 监控平台设计、开发、运维工作,具备大规模 Kubernetes 和 etcd 集群运维开发经验。 唐聪,腾讯云资深...

    腾讯云原生

扫码关注云+社区

领取腾讯云代金券