Настройка для защиты системных пространств имен Deckhouse

Настройка для защиты системных пространств имен Deckhouse#

Создание учетной записи для агента Kubernetes

  1. Создайте ресурс Secret с токеном для служебной учетной записи deckhouse:

    apiVersion: v1
    kind: Secret
    metadata:
     name: deckhouse-secret
     namespace: d8-system
     annotations:
      kubernetes.io/service-account.name: deckhouse
    type: kubernetes.io/service-account-token
    
  2. Выполните следующую команду:

    kubectl -n d8-system describe secret deckhouse-secret
    
  3. Получите и сохраните токен служебной ученой записи deckhouse:

    root@k8s-d-node1:/home/myuser# kubectl -n d8-system describe secret deckhouse-secret
    Name:         deckhouse-secret
    Namespace:    d8-system
    Labels:       <none>
    Annotations:  kubernetes.io/service-account.name: deckhouse
                  kubernetes.io/service-account.uid: 1db29c03-13d5-4a9d-a084-00348b739b05
    
    Type:  kubernetes.io/service-account-token
    
    Data
    ====
    ca.crt:     1107 bytes
    namespace:  9 bytes
    token:      <...>
    

Подготовка конфигурационного файла kubeconfig

  1. Загрузите на рабочую машину файл kubeconfig по умолчанию.

  2. Внесите в файл следующие изменения:

    • замените имя исходной служебной учетной записи (например, kubernetes-admin) на deckhouse;

    • замените сертификат для аутентификации пользователя (client-certificate-data: <...>) на токен (token: <...>), который был подготовлен при создании учетной записи для агента Kubernetes.

  3. Сохраните внесенные изменения.

Пример файла, который должен получиться в итоге:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <...>
    server: https://10.11.12.13:6443
  name: deckhouse
contexts:
- context:
    cluster: deckhouse
    user: deckhouse
  name: deckhouse@deckhouse
current-context: deckhouse@deckhouse
kind: Config
preferences: {}
users:
- name: deckhouse
  user:
    token: <...>