无法更改类型:ClusterIP要键入:Kubernetes中的kube-dns的LoadBalancer

时间:2018-12-19 04:56:49

标签: kubernetes kube-dns

当我运行kubectl get svc -n kube-system时,它会告诉我:

NAME       TYPE        CLUSTER-IP   EXTERNAL-IP    PORT(S)        AGE
kube-dns   ClusterIP   xx.xx.xx.xx   <none>       53/UDP,53/TCP   13h

但是当我尝试kubectl edit svc/kube-dns -n kube-system时:

  

错误:服务“ kube-dns”无效

     

您所做的更改的副本已存储到“ /tmp/kubectl-edit-4p5gn.yaml”中

     

错误:修改已取消,未保存有效更改。

我无法将其更改为LoadBalancer ...有什么想法吗?

我也试图创建一个新的kube-dns,但是我无法获得一个外部IP。它停留在待处理状态。

kind: Service
metadata:
  name: kubedns-bkp
  namespace: kube-system
  labels:
    k8s-app: kube-dns
spec:
  type: LoadBalancer
  ports:
  - port: 53
    protocol: UDP
  selector:
    k8s-app: kube-dns

kubectl get svc -n kube-system报告:

NAME            TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kubedns-bkp     LoadBalancer   xx.xx.xx.xx     <pending>     53:32115/UDP    5h

注意:我已经创建了具有ELB集成的k8s集群,对于其他服务,我成功获得了外部IP。

1 个答案:

答案 0 :(得分:2)

所以,这里有两件事:

  1. 正如他们在您选择不与我们分享的Yaml验证错误中向您提供的建议一样,您无法更改现有type:的{​​{1}};您必须创建一个新的,或删除现有的然后重新创建。
  2. 但是,我强烈建议强烈强烈建议不要删除Service kube-dns -非常欢迎您创建一个新的Service Service并将其指向与type: LoadBalancer使用的相同的selector:。这样,任何希望使用负载平衡服务的人都可以使用,但是依靠kube-dnskube-dns且具有(可能)现有xx.xx.xx.xx值的集群中的事物可以继续和以前一样。