Ваши предположения могут быть правильными, я имею в виду, что ваша проблема действительно может быть связана с тем, как api-сервер запускается в EKS, и когда отсутствует опция - client-ca-file , в соответствии с исходный код apiserver:
Кластер не предоставляет клиентский ca-файл в configmap /% s в% s, поэтому
аутентификация сертификата клиента на расширение api-server не будет работать.
Мне интересно, можете ли вы создать клиент-CA самостоятельно и впоследствии обновить ConfigMap с расширением-apiserver-аутентификацией. В конце концов, в EKS у нас есть доступ к CA (способ получить его здесь ), который может послужить нам для подписи клиентских сертификатов, как описано на странице GitHub с sample api-сервером .
В качестве дополнительного комментария:
Я заметил, что на EKS такие компоненты, как kubelet, используют aws-iam-authenticator
(содержимое /var/lib/kubelet/kubeconfig
на узле кластера):
apiVersion: v1
kind: Config
users:
- name: kubelet
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
args:
- token
- -i
- eks-api-eval
command: /usr/bin/aws-iam-authenticator
env: null
напротив GKE, где client-ca используется как способ аутентификации клиентов:
apiVersion: v1
kind: Config
users:
- name: kubelet
user:
client-certificate: /etc/srv/kubernetes/pki/kubelet.crt
client-key: /etc/srv/kubernetes/pki/kubelet.key