首页 > 解决方案 > 将 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 的任何配置选项。

标签: kubernetesibm-connectionsibmhttpserverhcl-component-pack

解决方案


我打开了图表并查看了它的默认值values.yml。IBM/HCL 似乎没有遵循 Helm 模板,该模板允许在几乎任何图表中使用ingress.tls.

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

  1. kubectl edit ing cnx-ingress-orient-me
  2. 替换*为子域(例如ing):- host: ing.k8s.internal
  3. 在 中添加一个tls部分spec
 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:\n\1- hosts:\n\1\1- ing.k8s.internal\n\1\2/g" /tmp/ing.yml

要应用我们的更改:

kubectl replace -f /tmp/ing.yml

推荐阅读