EKS кластер не предоставляет клиент-ca-файл

Используйте строку unicode для выражения XPath

hxs.select(u"id('unitControl')/div[2]/table/tbody/tr[td//text()[contains(.,'Antal Badeværelser')]]/td[2]/text()").extract()

или

hxs.select(u"id('unitControl')/div[2]/table/tbody/tr[td//text()[contains(.,'Antal Badev\u00e6relser')]]/td[2]/text()").extract()

См. Литералы Unicode в исходном коде на языке Python

0
задан nixgadgets 18 January 2019 в 02:30
поделиться

1 ответ

Ваши предположения могут быть правильными, я имею в виду, что ваша проблема может действительно иметь отношение к тому, как api-сервер запускается в EKS, и когда отсутствует опция - client-ca-file , согласно исходный код apiserver:

Кластер не предоставляет клиентский ca-файл в configmap /% s в% s, поэтому аутентификация клиентского сертификата на api-сервере расширения не будет работать.

Мне интересно, не могли бы вы создать клиент-CA самостоятельно и впоследствии обновить ConfigMap с расширением-apiserver-аутентификацией. В конце концов, в EKS у нас есть доступ к CA (способ получить его здесь ), который может послужить нам для подписи клиентских сертификатов, как описано на странице GitHub с примером 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
0
ответ дан Nepomucen 18 January 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: