k3s 使用 Letsencrypt 和 Traefik 完成 https 入口部署

k3s 使用 Letsencrypt 和 Traefik 完成 https 入口部署

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

本文介绍了如何在 k3s 集群中自动签发和续签 SSL 证书,并通过 HTTPS 协议暴露服务。首先安装 cert-manager 插件,然后通过示例配置文件部署 Web 服务,最后配置 ingress 实现 HTTPS 访问。使用 cert-manager 后,证书的认证、部署和续签将自动完成,确保服务安全。

🎯

关键要点

  • k3s 集群需要对外暴露服务,使用 HTTPS 协议进行加密传输。
  • 安装 cert-manager 插件,创建命名空间并应用配置文件。
  • 配置 Issuing Certificates,使用 letsencrypt.yml 文件进行证书签发。
  • 部署 Web 服务,创建命名空间并编写 deployment 配置文件。
  • 创建 service 资源,为 ingress 做准备。
  • 部署 ingress,配置流量路由到对应的 service,并使用 cert-manager 自动管理证书。
  • 证书状态显示正常,服务可以通过 HTTPS 访问。

延伸问答

如何在 k3s 集群中安装 cert-manager 插件?

可以通过创建命名空间并应用 cert-manager 的配置文件来安装 cert-manager 插件,使用命令:$ kubectl create namespace cert-manager 和 $ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.yaml。

什么是 Issuing Certificates,它的作用是什么?

Issuing Certificates 是用于认证服务归属者的配置,通常用于自动签发 SSL 证书,确保服务的安全性。

如何配置 ingress 以实现 HTTPS 访问?

需要创建 ingress 资源,指定 cert-manager 的 cluster-issuer,并配置流量路由到对应的 service,示例配置包括 tls 和规则设置。

使用 cert-manager 后,SSL 证书的管理有什么优势?

使用 cert-manager 后,SSL 证书的认证、部署和续签将自动完成,减少了手动管理的复杂性,提高了服务的安全性。

如何检查证书的状态以确保其正常?

可以使用命令 $ kubectl -n logos describe certificate 来查看证书的状态,确保其显示为 Ready,并且未过期。

在 k3s 中部署 Web 服务的基本步骤是什么?

基本步骤包括创建命名空间、编写 deployment 配置文件、部署服务资源,并最终配置 ingress 以实现 HTTPS 访问。

➡️

继续阅读