组件包文档使用http从IHS连接到Kubernetes后端。这已经不是最新的了,所以我想在这些后端连接以及IHS中使用https,如下所示:
User <----- https -----> IHS <----- https -----> K8S Backend
根据HCL文件,我们刚刚得到
User <----- https -----> IHS <----- http -----> K8S Backend
组件包入口没有任何https的配置选项。
我打开图表,查看它的默认values.yml
。IBM/HCL似乎没有遵循Helm模板,该模板允许使用ingress.tls
在几乎任何图表中配置https。
唯一可能的方法似乎是手动修改我们的入口资源,如下所示:
kubectl edit ing cnx-ingress-orient-me
- 用子域(例如
ing
(替换*
:- host: ing.k8s.internal
- 在
spec
中添加tls
部分:
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:n1- hosts:n11- ing.k8s.internaln12/g" /tmp/ing.yml
应用我们的更改:
kubectl replace -f /tmp/ing.yml