Обновите секрет TLS для посла - PullRequest
1 голос
/ 20 июня 2019

Мне нужно применить сертификат в решении после того, как решение будет развернуто. Когда посол слушал изменение в секрете tls, я выбрал этот подход. После того, как мое приложение было развернуто, мой посол использует самозаверяющий сертификат по умолчанию. Я обновил это сертификат с этой командой

kubectl create secret tls ambassador-tls-secret \
     --cert=/root/tls.crt --key=/root/tls.key  --dry-run -o yaml | 
  kubectl apply -f -


Мой секрет теперь обновлен, но мой посол по-прежнему не слушает новый секрет. Что-то не так с тем, как я обновил свой секрет?

1 Ответ

3 голосов
/ 20 июня 2019

Вы можете настроить Ambassador для завершения TLS с ресурсом TLSContext или tls 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 должен заметить созданный вами ambassador-tls-secret и использовать сертификаты для завершения tls.

Вы можете проверить, правильно ли настроен посол, проверив файл конфигурации envoy.json в контейнере посла

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 .

...