更新时间:2024-06-04 GMT+08:00

附录

背景信息

表1 常见名词介绍

简介

名称

解释

组件

CR

Container Runtime

容器运行时是负责运行容器的组件

Docker

Containerd

SC

StorageClass

StorageClass 是管理员用来描述可用的不同存储类型的一种方法

NFS

HostPath

Disk

CNI

Container network interface

容器网络接口

容器网络接口插件是遵循 appc/CNI 协议的一类网络插件

Calico

Cilium

Macvlan

VPC

Virtual Private Cloud

虚拟私有云

为云服务器、云容器、云数据库等云上资源构建隔离、私密的虚拟网络环境

“/”

Registry

镜像仓库

容器镜像仓库是一种存储库(或存储库集合),用于存储 Kubernetes、DevOps 和基于容器的应用开发的容器镜像

私有仓库

公有仓库

常见问题

  • 无法通过配置的EIP(isito-ingressgatewayVIP)访问多云协同平台

    访问EIP时,界面无法正常打开,自动重定向跳转至了VPC的内网地址

    此时需要替换并修改Ghippo模块中定义的地址信息:

    helm -n ghippo-system get values ghippo > /tmp/ghippo
    helm -n ghippo-system upgrade ghippo ghippo/ghippo --values=/tmp/ghippo --set global.reverseProxy=https://119.x.x.x(该地址为设置isito-ingressgatewayVIP的EIP)
  • 重启集群(虚拟机)istio-ingressgateway无法启动
    图1 报错提示

    可能原因:RequestAuthentication ghippo CR 的 jwtsUri 地址无法访问, 导致 istiod 无法下发配置给 istio-ingressgateway

    解决方法:

    1. 备份 RequestAuthentication ghippo CR
      kubectl get RequestAuthentication ghippo -n istio-system -o yaml > ghippo-ra.yaml
    2. 删除 RequestAuthentication ghippo CR
      kubectl delete RequestAuthentication ghippo -n istio-system
    3. 重启 Istio
      kubectl rollout restart deploy/istiod -n istio-system  
      kubectl rollout restart deploy/istio-ingressgateway -n istio-system 
    4. 重新 apply RequestAuthentication ghippo CR
      kubectl apply -f ghippo-ra.yaml
      ## apply RequestAuthentication ghippo CR 之前,请确保 ghippo-apiserver 和 ghippo-keycloak 服务已经正常启动。
  • MySQL故障

    CR 创建数据库失败报错:

    数据库运行正常,使用 CR 创建数据库出现了报错,此类问题的原因有:mysql root 密码有特殊字符

    图2 CR 创建数据库失败报错

    解决方法:

    1. 获取查看原密码:
      [root@master-01 ~]$ kubectl get secret -n mcamel-system mcamel-common-mysql-cluster-secret -o=jsonpath='{.data.ROOT_PASSWORD}' | base64 -d

      如果密码含有特殊字符 - ,进入MySQL的shell输入原密码出现以下错误

      bash-4.4# mysql -uroot -p  
      Enter password:  
      ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    1. 清理重建:
      • 方法一:清理数据目录,删除 Pod 等待 sidecar running 以后,再删除一次数据目录,再删除 Pod 即可恢复:
      [root@master-01 ~]# kubectl exec -it mcamel-common-mysql-cluster-mysql-1 -n mcamel-system -c sidecar -- /bin/sh  
      sh-4.4# cd /var/lib/mysql  
      sh-4.4# ls | xargs rm -rf
      • 方法二:删除 PVC 再删除 Pod,只需要处理一次,即可恢复:
      kubectl delete pvc data-mcamel-common-mysql-cluster-mysql-1 -n mcamel-system  
      kubectl delete pod mcamel-common-mysql-cluster-mysql-1 -n mcamel-system