#kubernetes #high-availability #kubeadm
#kubernetes #высокая доступность #kubeadm
Вопрос:
Мы настраиваем среду k8s на AWS. Мы создали ami, в котором установлены docker, k8s.
Кластер HA с 3 главными и 5 рабочими узлами создается с помощью балансировщика сетевой нагрузки с поддержкой TLS. Сертификат добавлен в TLS с доменом как *.amazonaws.com .
В моем файле конфигурации кластера ClusterConfiguration controlPlaneEndpoint и сертификаты указывают на DNS балансировщика нагрузки.
сбой установки kubeadm, при проверке журналов docker для k8s_kube-scheduler я вижу, что сертификат подстановки не принят.
Файл конфигурации.
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
apiServer:
extraArgs:
cloud-provider: aws
clusterName: test
controlPlaneEndpoint: tf-k8s-t1-nlb-34390285259d3aac.elb.us-west-1.amazonaws.com
controllerManager:
extraArgs:
cloud-provider: aws
configure-cloud-routes: "false"
address: 0.0.0.0
kubernetesVersion: v1.13.2
networking:
dnsDomain: cluster.local
podSubnet: 10.168.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler:
extraArgs:
address: 0.0.0.0
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
cloud-provider: aws`
E0318 15:36:20.604025 1 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list *v1.PersistentVolumeClaim: Get https://tf-k8s-t1-nlb-34390285259d3aac.elb.us-west-1.amazonaws.com:6443/api/v1/persistentvolumeclaims?limit=500amp;resourceVersion=0: x509: certificate is valid for *.amazonaws.com, not tf-k8s-t1-nlb-34390285259d3aac.elb.us-west-1.amazonaws.com
Не могли бы вы помочь мне в том, как передать подстановочный знак в моей конфигурации kubeadm?
Ответ №1:
сертификаты с подстановочными знаками работают только для 1 подуровня.
допустим, у вас есть *.example.com сертификат,
это принято для foo.example.com и foo2.example.com, но не для foo.boo.example.com вам понадобится *.boo.example.com сертификат для этого.