Rancher创建K8s集群报错:webhook-service未找到及连接问题求助
问题解决方案
先解决kubectl连接拒绝问题
出现The connection to the server localhost:8080 was refused是因为本地kubectl默认配置未指向Rancher容器内部的Kubernetes集群,按以下方式处理:
- 直接进入Rancher容器执行kubectl操作:
# 先获取Rancher容器ID sudo docker ps | grep rancher/rancher # 进入容器 sudo docker exec -it <rancher-container-id> /bin/bash # 容器内已配置好内部集群的kubeconfig,可直接使用kubectl命令 - 或者将容器内的kubeconfig导出到本地:
完成后本地kubectl即可正常连接Rancher内部的K3s集群。sudo docker cp <rancher-container-id>:/etc/rancher/k3s/k3s.yaml ~/.kube/config # 修改配置中的server地址为localhost:6443(适配容器端口映射) sed -i 's/127.0.0.1:6443/localhost:6443/' ~/.kube/config
解决webhook-service不存在问题
步骤1:检查cattle-system命名空间组件状态
进入Rancher容器后执行以下命令:
kubectl get pods -n cattle-system kubectl get svc -n cattle-system
- 若
rancher-webhook-xxx类pod未处于Running状态,排查启动失败原因:
根据日志修复镜像拉取、资源不足或配置错误等问题后,重启pod。kubectl describe pod <webhook-pod-name> -n cattle-system - 若webhook-service确实不存在,手动创建该服务:
创建webhook-service.yaml文件:
执行创建命令:apiVersion: v1 kind: Service metadata: name: webhook-service namespace: cattle-system spec: ports: - port: 443 targetPort: 9443 selector: app: rancher-webhookkubectl apply -f webhook-service.yaml
步骤2:重新生成webhook证书(按需操作)
确认webhook组件正常后,删除secret触发证书重新生成:
kubectl delete secret rancher-webhook-tls -n cattle-system
重启webhook部署:
kubectl rollout restart deployment rancher-webhook -n cattle-system
步骤3:重试集群创建
完成以上操作后,回到Rancher UI重新尝试创建Kubernetes集群,验证问题是否解决。
内容的提问来源于stack exchange,提问作者Baris Dirlik
相关产品推荐
相关产品推荐

