kubernetes - 将 https 与从 IHS 到 K8S 的 HCL Connections Component Pack 6.5 一起使用
问题描述
组件包文档使用 http 从 IHS 到 Kubernetes 后端的连接。这不再是最新的了,所以我想在这些后端连接以及 IHS 中使用 https,如下所示:
User <----- https -----> IHS <----- https -----> K8S Backend
按照 HCLs 文档,我们刚刚得到
User <----- https -----> IHS <----- http -----> K8S Backend
组件包入口没有记录 https 的任何配置选项。
解决方案
我打开了图表并查看了它的默认值values.yml
。IBM/HCL 似乎没有遵循 Helm 模板,该模板允许在几乎任何图表中使用ingress.tls
.
唯一可能的方法似乎是手动修改我们的入口资源,如下所示:
kubectl edit ing cnx-ingress-orient-me
- 替换
*
为子域(例如ing
):- host: ing.k8s.internal
- 在 中添加一个
tls
部分spec
:
tls:
- hosts:
- ing.k8s.internal
保存更改并使用 https 验证您的入口是否可用,例如使用 comp
curl "https://ing.k8s.internal/social/views/login.html" --head
应该返回HTTP/2 200
我们需要为所有已部署的入口资源重新分配此内容。部署所有功能后,有 4 个:
$ kging | grep -v NAME | awk '{print $1}'
cnx-ingress-appreg
cnx-ingress-orient-me
cnx-ingress-sanity
external-service
自动化
它还可以通过将入口导出到文件来自动化这些更改:
kubectl get ing cnx-ingress-orient-me -o yaml > /tmp/ing.yml
不,我们可以使用搜索/替换sed
# Replaces the general HTTP listen hostname
sed -i "s/host: '\*\./ing./g" /tmp/ing.yml
# Adds tls-tree with corresponding indention
sed "s/\(\s*\)\(rules:\)/tls:\n\1- hosts:\n\1\1- ing.k8s.internal\n\1\2/g" /tmp/ing.yml
要应用我们的更改:
kubectl replace -f /tmp/ing.yml
推荐阅读
- r - 使用具有两个不同列 R 的滞后函数
- json - 根据子键值获取键名
- reactjs - Reactjs 和 React Native 中的 Agora.io 问题
- c++17 - 如何将 std::variant 与非平凡的用户对象(稍后构建)一起使用,并让访问者使用自动 lambda?
- css - 基于引导网格断点为自定义类实现 css 特异性
- django-forms - 具有动态定义字段的 Django Crispy 表单
- spring - 使用 REST API 上传多部分文件并计算哈希
- database - 将合法文本中的位置准确表示为字符串
- javascript - Angular 9:延迟加载组件内的子路由不起作用
- javascript - 使用 URL 路径的客户端网站本地化