Kubernetes the hard way kube apiserver
Материал из noname.com.ua
Версия от 16:55, 17 октября 2022; Sirmax (обсуждение | вклад) (→Шифрование и файл encryption-config.yaml)
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: {}