5.1.2.1. Инициализация ЦА
Центр аутентификации — это удостоверяющий центр (Certificate Authority, CA), который выпускает, а также управляет корневыми сертификатами. Корневые сертификаты служат доверенным источником для установления защищенных соединений между компонентами кластера Kubernetes. Они обеспечивают аутентификацию и шифрование коммуникаций между узлами, сервисами и клиентами, гарантируя целостность и конфиденциальность передаваемых данных.
5.1.2.1.1. ETCD
Назначение: CA для всех сертификатов etcd-кластера. Подписывает серверные, клиентские и peer-сертификаты etcd:
etcd-server(клиентские подключения, порт 2379),etcd-peer(межузловая репликация, порт 2380) иetcd-healthcheck-client(проверки здоровья). Также используется kube-apiserver для верификации соединения с etcd через сертификатapiserver-etcd-client.
Обратите внимание: данный блок описывает только процесс создания корневых сертификатов ETCD CA.
- HardWay
- Kubeadm
Рабочая директория
mkdir -p /etc/kubernetes/openssl
mkdir -p /etc/kubernetes/pki/etcd
Конфигурация
cat <<EOF > /etc/kubernetes/openssl/etcd-ca.conf
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no
[req_distinguished_name]
CN = "etcd-ca"
[v3_ca]
keyUsage = critical, keyCertSign, keyEncipherment, digitalSignature
basicConstraints = critical,CA:TRUE
EOF
Генерация приватного ключа
openssl genrsa \
-out /etc/kubernetes/pki/etcd/ca.key 2048
Генерация публичного ключа
openssl req \
-x509 \
-new \
-nodes \
-key /etc/kubernetes/pki/etcd/ca.key \
-sha256 \
-days 3650 \
-out /etc/kubernetes/pki/etcd/ca.crt \
-config /etc/kubernetes/openssl/etcd-ca.conf
Проверка готовности сертификата
Данный раздел зависит от следующих разделов:
/etc/kubernetes/openssl/cert-report.sh /etc/kubernetes/pki/etcd/ca.crt
CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
etcd-ca Oct 20, 2034 22:04 UTC 9y no
Генерация сертификатов
kubeadm init phase certs etcd-ca \
--config=/var/run/kubeadm/kubeadm.yaml
После выполнения команды мы получаем следующий вывод.
#### Create ETCD CA
[certs] Generating "etcd/ca" certificate and key