kubernetes - 更新大使的 tls 秘密
问题描述
部署解决方案后,我需要在解决方案中应用证书。作为大使聆听 tls 机密的更改,我采用了这种方法。部署我的应用程序后,我的大使使用默认的自签名证书。我用这个更新了该证书命令
kubectl create secret tls ambassador-tls-secret \
--cert=/root/tls.crt --key=/root/tls.key --dry-run -o yaml |
kubectl apply -f -
我的秘密现已更新,但我的大使仍然不听新的秘密。我更新秘密的方式有问题吗?
解决方案
TLSContext
您可以将 Ambassador 配置为使用 a或 tlsModule
资源终止 TLS 。要使用您创建的密钥简单地终止 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
如果 Ambassador 已正确配置,您应该会看到已配置的 Envoytls_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"
如果您不这样做,那么大使出于某种原因拒绝了您的配置。检查大使容器的日志,确保您只有一个 tlsModule
或 TLSContext
已配置,检查是否service_port
已在大使模块中配置,并确保您拥有正确的 Ambassador_id 。
推荐阅读
- python - 在python中并行执行'N'个函数
- excel - 基于单元格值隐藏行非常慢
- javascript - 编译和缩小时让 child_process.fork() 在电子中工作
- php - 循环遍历数组并按索引添加到另一个数组
- java - 以用户的设备格式和语言显示日期和时间
- java - 无法在 Spring Boot 中使用 Crud Repository 从 Redis 获取结果?
- php - Laravel 使用 auth()->user() 作为 api
- c - 用 C 语言编程以使用 for 循环查找用户定义的平均值
- android - 未找到代码推送 Cordova 插件 PushNotification
- rxjs - 如何使用另一个 Observable 的值操作来自 Observable 的项目列表