说明说要安装它,但没有建议哪种方法、按什么顺序或使用哪种负载均衡器有效。我的部署中不断安装无用的测试证书。
最佳答案
听起来您正在从 helm 获取默认图表,这与您在 kube-lego Github 上找到的说明略有不同。 Helm Chart 默认使用 Let's Encrypt 的临时服务器。另外,如果您不熟悉 helm,那么撤消 kube-lego helm 图表留下的残余可能会非常棘手,特别是因为tiller 喜欢保留旧的安装历史记录。
以下是使用 Google Kubernetes Engine 设置 Gitlab Auto Devops 的简要概述。我应该提到,如果您使用 10.1 中引入的 Gitlab GKE 向导,您可以跳到步骤 13,但它不会真正告诉您发生了什么或出现问题时如何调试,而且该向导是一个单向过程。
- 在 Gitlab 的集成下,您将找到 Kubernetes 集成按钮
- 您还可以在 CI/CD -> 集群下找到它
- API URL 是以
https://
为前缀的端点 IP - 它请求的“CA 证书”是服务帐户 CA,与集群 CA 不同
- 要连接到 gitlab,您需要创建一个 k8s 服务帐户并获取其 CA 和 token 。通过使用 gcloud 对 kubectl 进行身份验证来实现此目的。 GCE 通过 k8s 引擎中的“连接”按钮为您轻松完成此操作
- 所有命令都必须使用自定义命名空间运行,默认命名空间不起作用
- kubectl 创建命名空间 (NS)
- kubectl create serviceaccount (NAME) --namespace=(NS)
- 这将在您的配置/ secret 中创建两个 token ,一个是默认 token ,一个是您的服务帐户
- kubectl get -o json serviceaccounts (NAME) --namespace=(NS)
- kubectl get -o json Secret (secrets-name-on-prev-result) --namespace=(NS)
- 例如,要解码 Base64 值,请将其回显为
base64 -d
- 回显 mybase64stringasdfasdf= | base64-d
- 要安装helm,请使用安装脚本方法
- 初始化 helm 并更新其存储库
- Helm 初始化
- helm 仓库更新
- 安装nginx-ingress,它的入口是nginx。您也可以使用 Google 负载均衡器,但它不那么便携。
- helm 安装 stable/nginx-ingress
- 创建一个通配符子域,其中 A 记录指向 ingress 设置的 IP 地址
- 在 Gitlab 中,让自动 DevOps 使用您新设置的通配符子域,如果“me.com”上的“*.x”,您应该在自动 DevOps 设置中输入“x.me.com”。
- 现在安装 kube Lego
- helm install --namelego-main\
--设置 [email protected]\
--set config.LEGO_URL= https://acme-v01.api.letsencrypt.org/directory\
稳定/kube-乐高
- Helm 安装称为图表,相当于 k8s 容器安装
- 如果您想删除某个版本,则必须清除它,否则tiller将保留历史记录,其中:
- helm delete --purge my-release-name
- 您可以在以下位置找到版本名称及其相关图表:
- Helm 列表
- helm install --namelego-main\
--设置 [email protected]\
--set config.LEGO_URL= https://acme-v01.api.letsencrypt.org/directory\
稳定/kube-乐高
疑难解答
- 顺序似乎并不太重要。附加到 Pod 可能是调试问题(例如错误的电子邮件地址)的有用方法。然而理想的顺序可能是,nginx-ingress,然后 kube-lego,然后 gitlab。我确实先让它与 gitlab 一起工作,然后是 nginx-ingress,然后是 kube-lego。
我从 Sid 那里听说他们正在努力让这一切变得更容易......希望如此。
关于https - 如何使用 GKE 和 kube-lego 在 Gitlab Auto DevOps 上制作 SSL/HTTPS 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723928/