Рабочий узел не может присоединиться к главному узлу в kubernetes - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть два сетевых интерфейса в моем главном узле -

192.168.56.118

10.0.3.15

При выполнении kubeadm init на главном узле, Я получил следующую команду, чтобы добавить работников

kubeadm join --token qr1czu.5lh1nt34ldiauc1u 192.168.56.118:6443 --discovery-token-ca-cert-hash sha256:e5d90dfa0fff67589551559c443762dac3f1e5c7a5d2b4a630e4c0156ad0e16c

Как видите, он показывает 192.168.56.118 IP для подключения с работника.Но, выполняя то же самое на рабочем узле, я получаю следующую ошибку:

[root@k8s-worker ~]# kubeadm join --token qr1czu.5lh1nt34ldiauc1u 192.168.56.118:6443 --discovery-token-ca-cert-hash sha256:e5d90dfa0fff67589551559c443762dac3f1e5c7a5d2b4a630e4c0156ad0e16c
[preflight] Running pre-flight checks
[discovery] Trying to connect to API Server "192.168.56.118:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://192.168.56.118:6443"
[discovery] Requesting info from "https://192.168.56.118:6443" again to validate TLS against the pinned public key
[discovery] Failed to request cluster info, will try again: [Get https://192.168.56.118:6443/api/v1/namespaces/kube-public/configmaps/cluster-info: x509: certificate is valid for 10.96.0.1, 10.0.3.15, not 192.168.56.118]

Я пробовал с другим IP - 10.0.3.15.Но он возвращает ошибку «отказано в соединении», несмотря на то, что межсетевой экран отключен в master.

[root@k8s-worker ~]# kubeadm join --token qr1czu.5lh1nt34ldiauc1u 10.0.3.15:6443 --discovery-token-ca-cert-hash sha256:e5d90dfa0fff67589551559c443762dac3f1e5c7a5d2b4a630e4c0156ad0e16c
[preflight] Running pre-flight checks
[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
[discovery] Trying to connect to API Server "10.0.3.15:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://10.0.3.15:6443"
[discovery] Failed to request cluster info, will try again: [Get https://10.0.3.15:6443/api/v1/namespaces/kube-public/configmaps/cluster-info: dial tcp 10.0.3.15:6443: connect: connection refused]

Как заставить сертификат сделать 192.168.56.118 действительным?или любая идея, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 20 февраля 2019

При инициализации кластера с помощью kubeadm init необходимо предоставить дополнительный сертификат SAN сервера apserver (--apiserver-cert-extra-sans <ip_address>) и рекламный адрес сервера api (--apiserver-advertise-address).Ваша команда инициализации kubeadm будет выглядеть следующим образом:

kubeadm init --apiserver-cert-extra-sans 192.168.56.118 --apiserver-advertise-address 192.168.56.118

После того, как вы инициализируете кластер с помощью вышеуказанной команды, вы не столкнетесь с проблемой сертификатов при присоединении к кластеру

...