Я разрабатываю изменяющийся веб-перехватчик с типом и, как я понимаю, конечная точка API должна быть https
. Сертификат и ключ сервера API должны быть подписаны центром сертификации самого кластера, чтобы избежать выдачи самозаверяющих сертификатов. И для этого рекомендуются следующие шаги:
- Создать ключ -
openssl genrsa -out app.key 2048
- Создать CSR -
openssl req -new -key app.key -subj "/CN=${CSR_NAME}" -out app.csr -config csr.conf
- Создать объект CSR в кубернетах -
kubectl create -f csr.yaml
- Утвердить CSR -
kubectl certificate approve csr_name
- Извлечь PEM -
kubectl get csr app.csr -o jsonpath='{.status.certificate}' | openssl base64 -d -A -out app.pem
Примечания
1. csr.conf
содержит сведения об успешной настройке CSR.
2. csr.yaml
написан для типа kuberenetes CertificateSigningRequest
.
3. csr_name
определен в CertificateSigningRequest
.
4. spec.request
в csr.yaml
установлен на cat app.csr | base64 | tr -d '\n'
. 5. app.pem
и app.key
используются для установки https
конечной точки.
Конечная точка определенно достижима, но возникают следующие ошибки:
Internal error occurred: failed calling webhook "com.me.webhooks.demo": Post https://webhook.sidecars.svc:443/mutate?timeout=10s: x509: certificate signed by unknown authority
Как мне обойти certificate signed by unknown authority
проблему?
Ссылки:
1. Написание очень базовый веб-перехватчик приема Kubernetes
2. Погружение в Kubernetes MutatingAdmissionWebhook
certificates.k8s.io/v1
. Вы тоже обновились? - person David Wer   schedule 09.03.2021