Ошибка установки контроллера Nginx Ingress, наберите tcp 10.96.0.1:443: тайм-аут ввода-вывода

Я пытаюсь настроить кластер Kubernetes с помощью kubeadm и vagrant. Я столкнулся с ошибкой при установке контроллера входящего трафика nginx: тайм-аут, когда модули пытаются получить конфигурационную карту через kubernetes API. Я осмотрелся и попытался применить их решение, но все равно не повезло, это причина, по которой я опубликовал этот пост.

Среда:

Я использую vagrant для установки 2 узлов с изображением ubuntu / xenial.

kmaster
-------------------------------------------
network:
Adapter1: NAT
Adapter2: HostOnly-network, IP:192.168.2.71

kworker1
-------------------------------------------
network:
Adapter1: NAT
Adapter2: HostOnly-network, IP:192.168.2.72

Я следил за kubeadm, чтобы настроить кластер

[Настройка кубернетов с помощью kubeadm]

И моя команда инициализации кластера kube, как показано ниже:

kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.2.71

и примените политику плагинов сети calico:

kubectl apply -f \
https://docs.projectcalico.org/v3.4/getting-started/kubernetes/installation/hosted/etcd.yaml

kubectl apply -f \
https://docs.projectcalico.org/v3.4/getting-started/kubernetes/installation/hosted/calico.yaml

(Calico - это плагин, с которым я в настоящее время успешно установил, я опубликую еще один пост для плагина flannel, который не может получить доступ к услуге)

Я использую helm для установки контроллера входящего трафика, следуя руководству https://kubernetes.github.io/ingress-nginx/deploy/

Это ошибка произошла после того, как я применил команду helm deploy, когда описываю модуль.

Ошибка Helm Ingress

Признайте, что кто-то может помочь, поскольку я знаю, что причина в том, что модуль не может получить доступ к kubernetes API. Но разве это не должно быть включено кубернетами по умолчанию?

Состояние моих модулей kubesystem показано ниже:  системные модули kube

Еще одно решение, предоставленное с официального сайта kubernetes:

1) установите kube-proxy с sidecar, я все еще новичок в kubernetes, и я ищу, например, как установить kube-proxy с sidecar. Признайте, если кто-нибудь может привести пример.

2) используйте client-go, я очень запутался, когда прочитал этот пост, кажется, что с помощью команды go вытащить сценарий go, и я понятия не имею, как он работает с модулями kubernetes.


person A1ucard    schedule 16.12.2018    source источник
comment
(а) будьте осторожны с бродячими кластерами, поскольку это очень важно, чтобы ничто в кластере не пыталось привязаться к этому интерфейсу NAT; kubespray известен тем, что не обращает на это внимания, поэтому kubeadm также может стать его жертвой. Вы можете полностью обойти эту проблему, используя bridge для интерфейса, если это приемлемо в вашей ситуации. (b) тайм-ауты ввода-вывода почти всегда являются ошибкой CNI; все стручки ситца подошли успешно?   -  person mdaniel    schedule 16.12.2018
comment
Да, бязь успешно поднялась. Я могу получить доступ к образцу службы и развертыванию.   -  person A1ucard    schedule 16.12.2018
comment
а другие поды могут получить доступ к 10.96.0.1:443? вы также упомянули, что ошибка произошла после того, как я применил команду helm deploy - это та же ошибка? Пожалуйста, подумайте над конкретизацией вашего вопроса, чтобы включить более подробную информацию; сообщения журнала, тесты, которые вы уже запускали, что угодно   -  person mdaniel    schedule 16.12.2018
comment
Другой модуль также не может получить доступ к kunernetes api.   -  person A1ucard    schedule 16.12.2018
comment
Я добавил дополнительную информацию и пытаюсь пропинговать 10.96.0.1 с другого порта, он тоже не работает .... Возможно, мне нужно попробовать в реальной среде, такой как GCD, AWS, ...   -  person A1ucard    schedule 16.12.2018
comment
Я предполагаю, что ваша бродячая сеть конфликтует с пулом IP-адресов ситца. Можете ли вы попробовать изменить бродячую сеть на что-то вроде 172.18.18.xxx.   -  person Bal Chua    schedule 17.12.2018


Ответы (1)


Вы, ребята, правы, я тестировал каплю цифрового океана, и она работает, как ожидалось, я обнаружил еще одну ошибку: «Запрещено, учетная запись службы пользователя не разрешена». Похоже, что поды уже могут получить доступ к Kubernetes api. Я также протестировал установку istio, с которой раньше сталкивался с той же проблемой, и теперь она работает в цифровом океане.

Спасибо вам, ребята.

person A1ucard    schedule 17.12.2018