将https与从IHS到K8S的HCL连接组件包6.5一起使用



组件包文档使用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。

唯一可能的方法似乎是手动修改我们的入口资源,如下所示:

  1. kubectl edit ing cnx-ingress-orient-me
  2. 用子域(例如ing(替换*- host: ing.k8s.internal
  3. spec中添加tls部分:
tls:
- hosts:
- ing.k8s.internal
  1. 保存更改并使用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

最新更新