Обновите секрет TLS для посла
Мне нужно применить сертификат в решении после того, как решение было развернуто. Когда посол слушал изменение в секрете tls, я выбрал этот подход. После того, как мое приложение было развернуто, мой посол использует самозаверяющий сертификат по умолчанию. Я обновил этот сертификат этим команда
kubectl create secret tls ambassador-tls-secret \
--cert=/root/tls.crt --key=/root/tls.key --dry-run -o yaml |
kubectl apply -f -
Сейчас мой секрет обновлен, но мой посол все еще не слушает новый секрет. Что-то не так с тем, как я обновил свой секрет?
1 ответ
Вы можете настроить Ambassador на прекращение TLS с помощью TLSContext
или тлс Module
ресурс. Чтобы либо просто прекратить TLS, используя созданный вами секрет, вы можете настроить их следующим образом:
TLS Module
:
---
apiVersion: ambassador/v1
kind: Module
name: tls
config:
server:
enabled: true
secret: ambassador-tls-secret
TLSContext
:
---
apiVersion: ambassador/v1
kind: TLSContext
name: ambassador
secret: ambassador-tls-secret
hosts: ["*"]
После настройки любого из них, посол должен заметить ambassador-tls-secret
Вы создали и используете сертификаты для терминации TLS.
Вы можете проверить, правильно ли настроен посол, проверив envoy.json
файл конфигурации в контейнере Ambassador
kubectl exec -it {AMBASSADOR_POD_NAME} -- cat envoy/envoy.json
Если посол был правильно настроен, вы должны увидеть посланника tls_context
настроен и слушатель по имени ambassador-listener-8443
как ниже:
"tls_context": {
"common_tls_context": {
"tls_certificates": [
{
"certificate_chain": {
"filename": "/ambassador/snapshots/default/secrets-decoded/ambassador-certs/66877DCC8C7B7AF190D3510AE5B4BFC71FADB308.crt"
},
"private_key": {
"filename": "/ambassador/snapshots/default/secrets-decoded/ambassador-certs/66877DCC8C7B7AF190D3510AE5B4BFC71FADB308.key"
}
}
]
}
},
"use_proxy_proto": false
}
],
"name": "ambassador-listener-8443"
Если вы этого не сделаете, то посол отклонил ваш конфиг по какой-то причине. Проверьте журналы контейнера Ambassador, убедитесь, что у вас есть только TLS Module
или же TLSContext
настроен, проверьте, если service_port
был настроен в модуле посла, и убедитесь, что у вас есть правильный ambassador_id.