NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

如何在 Rancher 2.x 中升级 cert-manageer?

  • 2020-05-18
  • 本文字数:2698 字

    阅读完需:约 9 分钟

如何在Rancher 2.x中升级cert-manageer?

作者:

Nassos Michas 丨 European Dynamics SA, CTO


如果你正在使用由 Rancher 提供的 Helm Chart 在 Rancher 管理的 Kubernetes 集群中安装 cert-manager,那么你最近也许收到了 Let’s Encrypt 发给你的提醒:



在集群中检查 cert-manager 的日志,你可以看到 Let’s Encrypt 拒绝更新证书的请求,因为“你的 ACME 客户端版本过旧,请升级到更新的版本”。那么,我们现在就开始吧!

使用 Rancher 提供的 Helm Chart 进行更新

我想你脑海里的第一想法应该和我的类似:使用相关的最新版本的 Helm Chart 升级 cert-manager。大家可以不用考虑这个选项,因为 Rancher 提供的 cert-manager Helm Chart 目前最新的是 0.5.2 版本,所以别想着一键式升级啦!

使用官方 Helm Chart 升级

参考链接:https://forums.rancher.com/t/update-on-cert-manager-application-in-the-catalog/15598


计划十分简单:只需要将 Rancher 提供的 cert-manager 的 Helm Chart 移除,并使用 Helm 中由 Jetstack 维护的 chart 替换即可。


在开始之前,我们需要保持谨慎。从 v0.5.2 到目前 stable 的版本 v0.11.0,许多内容都有所更改。新引入的 CRDs 和相应的配置格式将深刻地影响你的部署。因此,更新升级后,你需要将资源定义更新为新格式。幸运的是,cert-manager 为我们提供了升级脚本,我们会在下文中用到它。

移除 Rancher 提供的 Helm Chart

1、 登录你的 Rancher UI


2、 切换到最初安装 cert-manager 的项目(可能是 System)


3、 点击“APPs”


4、 点击垂直省略号按钮,然后选择“删除”。



现在,你已经移除了最开始安装的 cert-manager。请注意,这一操作不会影响此前已经创建的证书,并且你的 ingress 配置应该像之前一样工作。

安装 Tiller

Tiller 是 Helm 的服务端组件,所以为了能在我们的 CLI 中使用 Helm,我们需要在 Kubernetes 集群中安装 Tiller。你可以通过运行以下命令来验证 Tiller 是否已经安装:


helm version
复制代码



如果你的输出结果与以上结果类似,那么 Tiller 并没有安装好。如果你已经完成安装,那么请跳过这一部分。


好,现在我们来安装 Tiller。首先,我们需要创建一个服务账号,授予我们远程安装 Tiller 的权限,然后再授予安装 Chart 的权限。


kubectl -n kube-system create serviceaccount tillerkubectl create clusterrolebinding tiller \  --clusterrole=cluster-admin \  --serviceaccount=kube-system:tiller
复制代码


要启动安装 Tiller:


helm init --service-account tiller
复制代码


几秒钟之后,你能够通过重新输入命令 helm version 来验证 Tiller 是否已经安装,或者通过下列命令来验证你的 Kubernetes Tiller 部署:


kubectl -n kube-system rollout status deploy/tiller-deploy:
复制代码


安装 cert-manager

在安装 cert-manager 之前,我们需要做以下准备:


1、 禁用资源验证,以允许 cert-manager 的 webhook 组件正常工作


2、 安装新的(v0.11.1)的 CRDs


3、 添加 Jetstack repos


kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=truekubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.11/deploy/manifests/00-crds.yamlhelm repo add jetstack https://charts.jetstack.io && helm update
复制代码



此时,我们就准备好安装并且验证 cert-manager


helm install \  --name cert-manager \  --namespace cert-manager \  --version v0.11.0 \  jetstack/cert-managerkubectl get pods --namespace cert-manager
复制代码



cert-manager v0.11.0 安装成功

升级旧的资源参考和配置

参考链接:


https://cert-manager.io/docs/installation/upgrading/upgrading-0.10-0.11/


如果你检查你的 ingress 证书,你会发现什么都没有改变。这在意料之中,因为之前的版本 v0.5.2 中使用的 ingress 定义的配置不适用于 v0.11.0。cert-manager 为我们提供了简便的代码来查找哪个集群资源依旧引用旧的注释:


kubectl get ingress \      --all-namespaces \      -o json | \      jq '.items[] | select(.metadata.annotations| to_entries | map(.key)[] | test("certmana
复制代码



根据你的 Kubernetes 集群部署数量,以上列表可能会更短也可能会更长。而尝试去手动更改所有部署的旧注释可能会花费相当长的时间。以下 CLI 工具可以自动执行这一过程,但它不会对你的集群造成任何更改:


# 首先,根据你的平台下载二进制文件wget -O api-migration https://github.com/jetstack/cert-manager/releases/download/v0.11.0/api-migration-linux# 或者根据Darwinwget -O api-migration https://github.com/jetstack/cert-manager/releases/download/v0.11.0/api-migration-darwin
# 将二进制文件标记为可执行文件,然后对集群运行二进制文件chmod +x api-migration && ./api-migration --kubeconfig /path/to/my/kubeconfig.yaml
# 查看CLI的输出结果并且检查文件中的差异diff ingress.yaml ingress-migrated.yaml
# 最后,review了新的ingress资源之后,应用manifestkubectl apply -f ingress-migrated.yaml --kubeconfig /path/to/my/kubeconfig.yaml
复制代码


请确保更新所有 Ingress 资源,以保证您的证书保持最新状态。

重新引入集群 Issuer

我们现在基本上完成了,最后一步是我们需要重新引入集群 Issuer(如果你只希望将 kind 注释更改为 Issuer,也可以选择每个命名空间的 Issuer)。


使用 Let’s Encrypt stage 和 Production 以及 HTTP01 创建两个集群 Issuer,以下是代码摘要:


apiVersion: cert-manager.io/v1alpha2kind: ClusterIssuermetadata:  name: letsencrypt-stagingspec:  acme:    email: example@example.com    server: https://acme-staging-v02.api.letsencrypt.org/directory    privateKeySecretRef:      name: letsencrypt-staging-account-key    solvers:    - http01:        ingress:          class: nginx---apiVersion: cert-manager.io/v1alpha2kind: ClusterIssuermetadata:  name: letsencrypt-prodspec:  acme:    email: example@example.com    server: https://acme-v02.api.letsencrypt.org/directory    privateKeySecretRef:      name: letsencrypt-prod-account-key    solvers:    - http01:        ingress:          class: nginx
复制代码


在一两分钟之后,你的所有 ingress 都将更新为指向新颁发的证书。但是请记住,如果你之前的证书不在续订窗口内,那么你不会发现任何差异。


PS:针对 Rancher 本身的应用,cert-manager 支持的最高版本是 v0.9,如果是自有的应用服务,可以支持最新版本。

PPS:由于众所周知的原因,在国内不推荐使用 cert-manager,建议使用 10 年有效期的自签名证书。


2020-05-18 18:07529

评论

发布
暂无评论
发现更多内容

Disk Drill for Mac(数据恢复软件) v5.5.1515中文激活版

iMac小白

Disk Drill for Mac Disk Drill下载 Disk Drill mac

App测试中,强制等待和隐式等待谁更强?

霍格沃兹测试开发学社

库存领域核心能力--库存预占 建设实践

京东科技开发者

国际标准图查询语言 GQL 正式发布,悦数图数据库业界首家原生支持

最新动态

Vellum for Mac(电子书生成工具) v3.7激活版

影影绰绰一往直前

Vellum下载 Vellum for mac Vellum激活

AnyMP4 Android Data Recovery for Mac(安卓数据恢复软件)v2.1.16激活版

影影绰绰一往直前

官宣|Apache Paimon 毕业成为顶级项目,数据湖步入实时新篇章!

Apache Flink

Apache 大数据 flink paimon

SD-WAN解决电商企业海外业务网络难题

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

ETLCloud中多并行分支运行的设计技巧

RestCloud

ETL 数据集成 多并行分支

利用SD-WAN技术优化企业网络

Ogcloud

网络 SD-WAN sdn 企业组网 SD-WAN组网

中科院院士:借鉴美国超级计算机安腾 探索我国技术新路径

Geek_2d6073

2024腾讯微信广告正规授权代理 对接全国市场 利润全给

陈老师讲创业

Axure RP 9 for mac激活版 交互式产品原型设计工具

iMac小白

Axure RP 9汉化 Axure RP 9授权码 Axure RP 9破解版

软件测试学习笔记丨显式等待的高级使用

测试人

软件测试 自动化测试 测试开发

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

汀丶人工智能

大模型 text2sql NL2SQL

「布道师系列文章」解析 AutoMQ 对象存储中的文件存储格式

AutoMQ

大数据 kafka 云原生 知乎 AutoMQ

AnyTrans 8 for mac(专业的ios数据传输工具) v8.9.8.20240417中文激活版

影影绰绰一往直前

AnyTrans 8下载 AnyTrans 8 mac AnyTrans 8破解

DxO PhotoLab 7 for Mac(专业照片编辑软件) v7.6.0.55激活版

影影绰绰一往直前

FotoJet Designer(图形设计软件)特别版下载

iMac小白

去中心化交易所开发 AI策略交易

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

DBeaverEE for Mac(数据库管理) v24.0.3企业激活版

影影绰绰一往直前

微服务架构下如何通过弱依赖原则保障系统高可用

京东科技开发者

4K YouTube to MP3 for Mac(在线视频转Mp3软件)v5.2.2中文激活版

影影绰绰一往直前

4K YouTube to MP3 4K YouTube to MP3下载

4K Video Downloader Plus Pro for Mac(4K视频下载器) v1.5.3激活版

影影绰绰一往直前

Music Tag Editor Pro for Mac(音频标签管理工具) v8.0.0中文激活版

影影绰绰一往直前

Music Tag Editor下载 Music Tag Editor mac

Icecream Screen Recorder Pro(屏幕录像软件)

iMac小白

信创里程碑:Tapdata 同时通过华为云 GaussDB 及鲲鹏兼容互认证,全面支持基础设施自主创新建设

tapdata

华为云 GaussDB 华为云公有云平台(鲲鹏)

市场份额第一!博睿数据持续领跑中国APM市场

博睿数据

可观测性 IT IT 运维 市场份额

NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL)、新一代数据集BIRD-SQL解读

汀丶人工智能

自然语言处理 大模型 NL2SQL

Algoriddim djay Pro Ai for Mac(DJ混音软件) v5.1.5激活版

影影绰绰一往直前

djay Pro下载 djay Pro破解

剪切板复制粘贴管理工具 Paste for mac中文激活版

iMac小白

Paste for Mac paste mac破解版 Paste 下载

如何在Rancher 2.x中升级cert-manageer?_文化 & 方法_Rancher_InfoQ精选文章