Ответ
Kubernetes The Hard Way — это знаменитое практическое руководство от Kelsey Hightower, которое описывает ручное развёртывание production-like кластера Kubernetes с нуля, без использования высокоуровневых инструментов вроде kubeadm, minikube или managed-сервисов (EKS, GKE). Его цель — не создать продакшен-кластер, а дать глубокое, пошаговое понимание каждого компонента системы, его роли и конфигурации.
Основные этапы, которые вы проходите:
- Безопасность и PKI: Ручное создание корневого и промежуточного Certificate Authority (CA) и генерация TLS-сертификатов для каждого компонента (kube-apiserver, kubelet, etcd, admin-пользователя). Это основа взаимного TLS (mTLS) в кластере.
- Развёртывание etcd: Настройка отказоустойчивого кластера etcd для хранения состояния Kubernetes (state).
- Control Plane: Установка и конфигурация
kube-apiserver,kube-controller-managerиkube-schedulerна отдельных виртуальных машинах. - Worker Nodes: Установка
kubeletиkube-proxy, настройка авторизации Node через TLS-сертификаты (Node Authorizer). - Сетевая модель: Настройка CNI-плагина (например,
bridge+host-localдля сети иportmapдля маппинга портов) для обеспечения коммуникации между подами.
Пример команды для генерации сертификата kubelet:
# Генерация приватного ключа и CSR (Certificate Signing Request) для kubelet
openssl genrsa -out kubelet.key 2048
openssl req -new -key kubelet.key -out kubelet.csr
-subj "/O=system:nodes/CN=system:node:<node-hostname>" # Важно: Common Name (CN) и Organization (O)
# Подписание CSR корневым CA
openssl x509 -req -in kubelet.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out kubelet.crt -days 365
Зачем это нужно DevOps-инженеру? После прохождения этого руководства вы перестаёте воспринимать кластер как "чёрный ящик". Вы понимаете, как kubelet регистрирует ноду в API, как kube-proxy настраивает iptables/ipvs правила, и почему для устранения неполадок в продакшене критически важно уметь читать логи именно этих компонентов, а не просто перезапускать кластер.