kubeadm と im を使用して 2 つの kubernetes クラスターをセットアップし、haproxy を使用してトラフィックをリダイレクトし、異なるクラスターに負荷分散します。ここで、リクエストを各クラスターのそれぞれの API サーバーにリダイレクトしたいと考えています。したがって、ssl リクエストを復号化し、「ホスト」HTTP ヘッダーを読み取り、トラフィックを再度暗号化する必要があります。サンプルの haproxy 構成ファイルは次のようになります。
frontend k8s-api-server
bind *:6443 ssl crt /root/k8s/ssl/apiserver.pem
mode http
default_backend k8s-prod-master-api-server
backend k8s-prod-master-api-server
mode http
option forwardfor
server master 10.0.0.2:6443 ssl ca-file /root/k8s/ssl/ca.crt
kubectl 経由で API サーバーにアクセスすると、次のエラーが発生します。
kubectl get pods
error: the server doesn't have a resource type "pods"
kubectl get nodes
error: the server doesn't have a resource type "nodes"
復号化と暗号化に間違った証明書を使用していると思います。ディレクトリ/etc/kubernetes/pkiにあるapiserver.crt、apiserver.key、およびca.crtファイルを使用する必要がありますか?