невозможно изменить тип: ClusterIP для ввода: LoadBalancer для kube-dns в kubernetes - PullRequest
0 голосов
/ 19 декабря 2018

Когда я запускаю 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

Примечание. Я создал кластер k8s с интеграцией ELB, для других служб я успешно получаю внешние IP-адреса.

1 Ответ

0 голосов
/ 19 декабря 2018

Итак, две вещи здесь:

  1. Поскольку они посоветовали вам в ошибках валидации yaml, которые вы решили не сообщать нам, нельзя изменить type: существующего Service;Вы должны создать новый или удалить существующий и воссоздать его.
  2. Однако я настоятельно, настоятельно советую не удалять kube-dns Service -вы можете создать новый Service из type: LoadBalancer и указать на то же значение selector:, которое использует kube-dns.Таким образом, любой, кто хочет использовать службу с балансировкой нагрузки, может, но вещи в кластере, которые зависят от kube-dns, являющегося ClusterIP с (вероятно) существующим значением xx.xx.xx.xx, могут продолжаться, как и раньше.
...