Обновите секрет 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.

Другие вопросы по тегам