5.2.2.3. Kubeconfigs
Kubeconfig — это конфигурационный файл, который предоставляе т доступ к кластеру Kubernetes. Он содержит информацию о серверах API, учетных данных пользователей (таких как токены или сертификаты) и контекстах, определяющих, какой кластер и пользователь используются. Kubeconfig обеспечивает аутентификацию и авторизацию при взаимодействии с кластером через kubectl или другие клиенты, позволяя безопасно управлять ресурсами и настройками кластера.
Создаём
kubeconfig
-файлы для компонентов и пользователей. Это обеспечивает защищённое и контролируемое подключение к API-серверу.
- Init
- Join
Создание конфигураций kubeconfig и сертификатов
● Обязателен к применению
Создание конфигураций kubeconfig и сертификатов
● Обязателен к применению
- Super Admin
- Admin
- Controller
- Scheduler
- Kubelet
Super Admin
Super Admin
- HardWay
- Kubeadm
Рабочая директория
mkdir -p /etc/kubernetes/pki
mkdir -p /etc/kubernetes/openssl/csr
mkdir -p /etc/kubernetes/kubeconfig
Конфигурация
cat <<EOF > /etc/kubernetes/openssl/super-admin.conf
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[ dn ]
CN = kubernetes-super-admin
O = system:masters
[ v3_ext ]
authorityKeyIdentifier=keyid,issuer:always
basicConstraints=CA:FALSE
keyUsage=keyEncipherment,dataEncipherment
extendedKeyUsage=clientAuth
EOF
Генерация приватного ключа
openssl genrsa \
-out /etc/kubernetes/kubeconfig/super-admin.key 2048
Генерация CSR
openssl req \
-new \
-key /etc/kubernetes/kubeconfig/super-admin.key \
-out /etc/kubernetes/openssl/csr/super-admin.csr \
-config /etc/kubernetes/openssl/super-admin.conf
Подпись CSR
openssl x509 \
-req \
-days 365 \
-sha256 \
-CA /etc/kubernetes/pki/ca.crt \
-CAkey /etc/kubernetes/pki/ca.key \
-CAcreateserial \
-in /etc/kubernetes/openssl/csr/super-admin.csr \
-out /etc/kubernetes/kubeconfig/super-admin.crt \
-extensions v3_ext \
-extfile /etc/kubernetes/openssl/super-admin.conf
Настройка Kubeconfig для super-admin
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true \
--server=https://127.0.0.1:6443 \
--kubeconfig=/etc/kubernetes/super-admin.conf
kubectl config set-credentials system:node:${HOST_NAME} \
--client-certificate=/etc/kubernetes/kubeconfig/super-admin.crt \
--client-key=/etc/kubernetes/kubeconfig/super-admin.key \
--embed-certs=true \
--kubeconfig=/etc/kubernetes/super-admin.conf
kubectl config set-context default \
--cluster=kubernetes \
--user=system:node:${HOST_NAME} \
--kubeconfig=/etc/kubernetes/super-admin.conf
kubectl config use-context default \
--kubeconfig=/etc/kubernetes/super-admin.conf
Проверка готовности сертификата
Обратите ВНИМАНИЕ!
Данный раздел зависит от следующих разделов:
/etc/kubernetes/openssl/cert-report.sh /etc/kubernetes/kubeconfig/super-admin.crt