Kubernetes the hard way kube apiserver: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 57: | Строка 57: | ||
=Сертификаты которые использует <code>kube-apiserver</code>= |
=Сертификаты которые использует <code>kube-apiserver</code>= |
||
+ | |||
+ | <code>--etcd-certfile</code> |
||
+ | <code>--etcd-keyfile</code> |
||
+ | |||
+ | <code>--tls-cert-file</code> |
||
+ | <code>--tls-private-key-file</code> |
||
+ | |||
+ | <code>--service-account-key-file</code> |
||
+ | <code>--service-account-signing-key-file</code> |
||
+ | |||
+ | <code>--client-ca-file</code> |
||
+ | |||
+ | <code>--kubelet-certificate-authority</code> |
||
+ | <code>--kubelet-client-certificate</code> |
||
+ | <code>--kubelet-client-key</code> |
Версия 17:00, 17 октября 2022
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