记录k8s中安装kubeSphere的一些问题

特别说明

1.前置环境k8s
2.本文问题出自在 Kubernetes 上最小化安装 KubeSphere, 安装版本为3.2.1
3.可自行前往kubesphere开发者社区询问或者查找类似问题

一、安装 KubeSphere

  1. 查看安装日志

    kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
    
    • 无法查看

      pod创建失败

  2. 无法创建对应的pod

    • 查看出错原因

      kubectl describe rs -n kubesphere-system
      
      • 情况一

        Warning FailedCreate 2m34s (x16 over 5m18s) replicaset-controller Error creating: Internal error occurred: failed calling webhook “rev.object.sidecar-injector.istio.io”: Post https://istiod-1-11-2.istio-system.svc:443/inject?timeout=30s: service “istiod-1-11-2” not found

        • 查看是否有istiod-1-11-2的资源

          kubectl get mutatingwebhookconfigurations.admissionregistration.k8s.io
          
        • 删除istiod-1-11-2资源

          kubectl delete mutatingwebhookconfigurations.admissionregistration.k8s.io istio-sidecar-injector-1-11-2
          
    • 问题解决后, 重新创建

  3. 安装失败

    • 查看ks-installer的日志

      kubectl logs ks-installer-* -n kubesphere-system
      
      • 情况一

        2021-01-08T15:17:42+08:00 ERROR : error getting GVR for kind ‘ClusterConfiguration’: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request
        2021-01-08T15:17:42+08:00 ERROR : Enable kube events for hooks error: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request
        2021-01-08T15:17:45+08:00 INFO : TASK_RUN Exit: program halts.

        • 查看metrics-server是否正常

          kubectl get apiservice
          
        • 如果不正常, 可以先卸载, 等KubeSphere安装成功之后,再来安装metrics-server

    • 问题解决后, 重新创建

二、卸载 KubeSphere

官方教程

  1. 缺失插件, 安装目标插件即可

  2. 遇到卡住大概率是存有Terminating状态

    • 查看namespace

      kubectl get ns
      
    • 查看pod(也可省略, 直接进行删除操作)

      kubectl get pod -n <namespace>
      
    • 删除处于Terminating状态的pod

      kubectl get pods -n <namespace> | grep Terminating | awk '{print $1}' | xargs kubectl delete pod -n <namespace> --force --grace-period=0
      

      普通删除无法删除, 需强制删除–force --grace-period=0

    • 删除处于Terminating状态的namespace

      kubectl get namespace kdo -o json | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" | kubectl replace --raw /api/v1/namespaces/kdo/finalize -f -
      

PS: 直接强制删除namespace, 其中处于Terminating状态的pod并不会一起被删除

三、设置端口时受限

k8s的node节点的端口默认被限制在30000-32767的范围

  1. 修改配置文件

    vim /etc/kubernetes/manifests/kube-apiserver.yaml
    
  2. 添加端口范围(添加好保存后会自动生效)

    - command:
       - kube-apiserver
       # 添加如下一行
       - --service-node-port-range=1-65535
    

四、可能用到的指令

  • 容器相关

    • 删除Exited容器
      docker rm $(docker ps -a | grep "Exited" | awk '{print $1}')
      
  • 镜像相关

    • 删除none镜像

      docker rmi $(docker images | grep "none" | awk '{print $3}')
      
    • 删除镜像名称:tag的镜像

      docker rmi $(docker images | grep "tch.kubekey.local" | awk '{print $1":"$2}')
      
  • 重启docker

    systemctl restart docker
    
  • 防火墙相关

    • 查看防火墙是否开启

      systemctl status firewalld
      
    • 打开防火墙(关闭防火墙start -> stop)

      systemctl start firewalld
      
    • 开放端口

      firewall-cmd --zone=public --add-port=端口/tcp --permanent
      
    • 移除端口

      firewall-cmd --zone=public --remove-port=端口/tcp --permanent
      
    • 配置立即生效

      firewall-cmd --reload
      
    • 查看防火墙状态

      firewall-cmd --state
      
    • 查看所有开启的端口

      firewall-cmd --list-ports
      
    • 查看监听端口

      netstat -lnpt
      
  • 强制删除pvc/pv

    kubectl get pvc | tail -n+2 | awk '{print $1}' | xargs -I{} kubectl patch pvc {} -p '{"metadata":{"finalizers": null}}'
    
    kubectl get pv | tail -n+2 | awk '{print $1}' | xargs -I{} kubectl patch pvc {} -p '{"metadata":{"finalizers": null}}'
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值