Я не могу добавить CertSAN в конфигурацию кластера с несколькими мастерами
Привет.Создал кластер k8s с тремя мастерами и одним рабочим узлом.Размещено в локальной сети 192.168.1.0/24.Точка входа реализована через виртуальный IP 192.168.1.42 через keepalived + nginx на каждом главном узле.Локальные рабочие узлы добавляются нормально.
Versions:
Ubuntu 18.04.1 LTS
kubeadm 1.13.0-00
kubectl 1.13.0-00
kubelet 1.13.0-00
kubernetes-cni 0.6.0-00
docker-ce 18.06.1~ce~3-0~ubuntu
Мой init YAML: http://paste.org.ru/?5fvtpx
Я пересылаю порт 16443 на мастер.Я пытаюсь добавить рабочий узел из AWS.Я получаю сообщение об ошибке:
ubuntu@ip-172-31-18-25:~$ sudo kubeadm join 92.255.235.100:16443 --token XXX --discovery-token-ca-cert-hash sha256:XXX
[preflight] Running pre-flight checks
[discovery] Trying to connect to API Server "92.255.235.100:16443"
[discovery] Created cluster-info discovery client, requesting info from "https://92.255.235.100:16443"
[discovery] Requesting info from "https://92.255.235.100:16443" again to validate TLS against the pinned public key
[discovery] Failed to request cluster info, will try again: [Get https://92.255.235.100:16443/api/v1/namespaces/kube-public/configmaps/cluster-info: x509: certificate is valid for 10.96.0.1, 192.168.1.42, 192.168.1.42, 192.168.1.44, 192.168.1.46, 192.168.1.47, 192.168.1.42, 127.0.0.1, not 92.255.235.100]
Я ввел дополнительный CertSAN в configmap:
kubectl edit -n kube-system configmap
apiVersion: v1
data:
ClusterConfiguration: |
apiServer:
certSANs:
- master-k8s
- node1
- node2
- 192.168.1.44
- 192.168.1.46
- 192.168.1.47
- 192.168.1.42
- 92.255.235.100
- 127.0.0.1
Я попытался добавить CertSAN в configmap и обновить сертификаты.
kubeadm alpha certs renew all
Но после обновления сертификата ошибка сохраняется.Обновлены все сертификаты, кроме CA, front-proxy-ca, sa.
|apiserver-kubelet-client.crt │ 1099│Dec 25 16:48│
│ apiserver-kubelet-client.key │ 1679│Dec 25 16:48│
│ apiserver.crt │ 1310│Dec 25 16:48│
│ apiserver.key │ 1679│Dec 25 16:48│
│ ca.crt │ 1025│Dec 17 14:10│
│ ca.key │ 1679│Dec 17 14:10│
│ front-proxy-ca.crt │ 1038│Dec 17 14:10│
│ front-proxy-ca.key │ 1679│Dec 17 14:10│
│ front-proxy-client.crt │ 1058│Dec 25 16:48│
│ front-proxy-client.key │ 1679│Dec 25 16:48│
│ sa.key │ 1679│Dec 17 14:10│
│ sa.pub │ 451│Dec 17 14:10|
Я попытался создать самозаверяющие сертификаты через easyrsa3, но cubernetis не принимает их даже после обновления CA.И не позволяет использовать kubectl:
kubectl get pods --all-namespaces
Невозможно подключиться к серверу: x509: сертификат подписан неизвестным органом
Я обновил сертификат CA:
sudo cp ca.crt /usr/local/share/ca-certificates/kubernetes.crt
sudo update-ca-certificates
Но это не помогло.Я добавил сертификаты в конфиг kubernetes.http://paste.org.ru/?nqej8o Но это не помогло.
В машине AWS:
sudo kubeadm join 92.255.235.100:16443 --token XXX --discovery-token-ca-cert-hash sha256:XXX
[preflight] Running pre-flight checks
[discovery] Trying to connect to API Server "92.255.235.100:16443"
[discovery] Created cluster-info discovery client, requesting info from "https://92.255.235.100:16443"
[discovery] Requesting info from "https://92.255.235.100:16443" again to validate TLS against the pinned public key
[discovery] Failed to request cluster info, will try again: [Get https://92.255.235.100:16443/api/v1/namespaces/kube-public/configmaps/cluster-info: x509: certificate signed by unknown authority]
В локальном мастере:
root@master-k8s:/root/pki_backup# kubectl get pods --all-namespaces
Unable to connect to the server: x509: certificate signed by unknown authority
В ранних версиях kubernetesбыла команда:
kubeadm alpha phase certs selfsign --apiserver-advertise-address=0.0.0.0 --cert-altnames=10.161.233.80 --cert-altnames=114.215.201.87
Но в версии 1.13.0 это не так.Как добавить дополнительный адрес мастера в сертификаты kubernetes?