• 搜索
  • 夜间模式
    ©2026  依刻学习 Theme by OneBlog

    依刻学习博客

    搜索
    标签
  • 首页>
  • 学习的一天>
  • 正文
  • k8s部署wordpress与pod间的通信 (2) 错误集合与优化

    2025年03月03日 18 阅读 0 评论 1599 字

    错误

    1.设备忙

    • 错误
      取消挂载时显示''设备忙''无法取消挂载
    • 原因
      有进行正在使用/mnt目录导致无法取消挂载
    • 解决
      一般工具无法查看使用指定文件的目录,fuser工具可以查看进程使用的文件,结合grep可以过滤出使用/mnt的进程

      #安装fuser工具
      yum install -y psmisc
      
      #简单了解fuser
      fuser 
        -m /data    #指定文件
        
      #使用
      fuser  -m /mnt

    2.无法连接数据库

    • 错误
      wordpress报错,无法连接数据库
    • 原因
      wordpress无法连接数据库,因为数据库重启导致IP变动,而且此时使用的数据库的IP而不是使用svc,由此可以看见使用IP的服务脆弱性
    • 解决
      使用svc进行负载,固定VIP访问,或者使用hostNetwork主机网络映射(不推荐)

    3.没有端口

    • 问题


    启动两个副本,其中一个正常running,另一个无法启动

    • 解决
      原本启动两个(replicas: 2),发现有一个始终无法启动,但是另一个已经启动了,所以doployment本身是可以启动的,猜测是使用端口问题,因为使用了hostNetwork宿主机网络,端口已经被刚刚启动的pod使用了,导致该pod无法使用端口,导致一直pending
      检查日志
      kubectl describe pods -n t1 t1-deploy-wordpress-5fff645fd8-f5kqt

      是端口问题,一直无法访问(不是端口冲突而是没有端口,因为可以部署到不同的node)

    优化

    1.使用cm资源挂载环境变量而不是简单使用env

    cm资源(仅示例)

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mysql-cm
      namespace: t1
    data:
      MYSQL_ROOT_PASSWORD: "xxxxxxxxx"
      MYSQL_USER: "wordpress"
      MYSQL_DATABASE: "wordpress"
      MYSQL_PASSWORD: "wordpress"

    使用cm实例

    env:
    - name: mysql-env
      valueFrom:
        configMapKeyRef:
          name: mysql-cm
          key: MYSQL_ROOT_PASSWORD

    2.添加探针进行检查

    本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.028 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。