Kubernetes the hard way kube apiserver
Материал из noname.com.ua
Версия от 17:00, 17 октября 2022; Sirmax (обсуждение | вклад) (→Сертификаты которые использует kube-apiserver)
Kube-apiserver
Соглашение о расположении файлов
- bin -
/usr/local/bin/
- конфиги, в том числе сертификаты -
/etc/k8s/<имя сервиса>
например/etc/k8s/kube-apiserver/
- конфиги, в том числе сертификаты общие для нескольких сервисов -
/etc/k8s/shared/
Загрузка
Общий для всех базовых компонентов скрипт
#!/bin/bash VERSION="1.25.1" ARCH="arm64" mkdir -p k8s_${VERSION} cd k8s_${VERSION} wget -q --show-progress --https-only --timestamping \ "https://storage.googleapis.com/kubernetes-release/release/v${VERSION}/bin/linux/${ARCH}/kube-apiserver" \ "https://storage.googleapis.com/kubernetes-release/release/v${VERSION}/bin/linux/${ARCH}/kube-controller-manager" \ "https://storage.googleapis.com/kubernetes-release/release/v${VERSION}/bin/linux/${ARCH}/kube-scheduler" \ "https://storage.googleapis.com/kubernetes-release/release/v${VERSION}/bin/linux/${ARCH}/kubectl"
Шифрование и encryption-provider-config
encryption-config.yaml
https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
encryption-provider-config - конфигурация шифрования в etcd
Файл encryption-config.yaml
должен быть одинаковый у всех участников кластера, для того что бы они могли расшифровать данные друг друга
В целом судя по документации может быть более сложная конфигурация чем "один ключ для всего", но особого смысла в этом я не вижу
head -c 32 /dev/urandom | base64 <PRE> <PRE> cat configs/encryption-config.yaml kind: EncryptionConfig apiVersion: v1 resources: - resources: - secrets providers: - aescbc: keys: - name: key1 secret: sCfG58h5SdUxSFephLyE6M6ppxYfnVFUi+GB2b5+kd4= - identity: {}
Сертификаты которые использует kube-apiserver
--etcd-certfile
--etcd-keyfile
--tls-cert-file
--tls-private-key-file
--service-account-key-file
--service-account-signing-key-file
--client-ca-file
--kubelet-certificate-authority
--kubelet-client-certificate
--kubelet-client-key