Cert-manager 部署

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Cert-manager 部署

Cert-manager 部署

1、创建 Namespace

kubectl create namespace cert-manager

2、安装 CustomResourceDefinitions (CRDs)

kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.crds.yaml

3、部署 cert-manager

kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml

4、创建 ClusterIssuer

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: your-email@example.com  # 用于 Let's Encrypt 通知和问题证书时的联系邮箱
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
      - http01:
          ingress:
            class: ingress  # 指定使用的 Ingress 控制器类别,根据您的实际情况进行更改
  • metadata.name:为 ClusterIssuer 指定一个名称,例如 letsencrypt-prod
  • spec.acme.server:指定 Let's Encrypt ACME 服务器的 URL。通常情况下,您可以使用 Let's Encrypt 的生产服务器地址。
  • spec.acme.email:提供一个用于 Let's Encrypt 通知和问题证书时的联系邮箱。
  • spec.acme.privateKeySecretRef.name:指定存储 ACME 客户端私钥的 Kubernetes Secret 的名称。如果没有现有的 Secret,cert-manager 将自动生成并使用它。
  • spec.acme.solvers:定义用于验证证书颁发请求的解析器。在上面的示例中,使用 HTTP 验证解析器(http01),并指定了 Ingress 控制器的类别。您可以根据您的 Ingress 控制器类别和配置进行相应更改。

5、创建测试ingress 自动申请证书

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: test-ingress
  annotations:
    kubernetes.io/ingress.class: ingress
    kubernetes.io/ingress.rule-mix: "true"
    cert-manager.io/cluster-issuer: letsencrypt-prod  # 指定关联的 ClusterIssuer
spec:
  tls:
    - hosts:
        - test.abc.com  # 指定需要证书的域名
      secretName: test.abc.com.tls  # 证书将被存储在此 Kubernetes Secret 中
  rules:
    - host: test.abc.comm  # 指定规则的域名
      http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: serviceName  # 指定后端服务的名称
                port:
                  number: 8080  # 指定后端服务的端口
  • metadata.name:为 Ingress 资源指定一个名称,例如 example-ingress
  • annotations.cert-manager.io/cluster-issuer:在 Ingress 上使用注释指定要使用的 ClusterIssuer 的名称。这将告诉 cert-manager 使用哪个颁发机构来签发证书。
  • tls.hosts:在 tls 部分下,列出需要证书的域名。在上述示例中,example.com 是需要证书的域名。您可以指定多个域名,以逗号分隔。
  • tls.secretName:指定一个 Kubernetes Secret 的名称,用于存储颁发的证书。
  • rules.host:在 rules 部分下,指定规则的域名,即您要为其创建 Ingress 规则的域名。
  • rules.http.paths.backend.service.namerules.http.paths.backend.service.port.number:指定后端服务的名称和端口,以将流量路由到后端服务。
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes 网络协议 网络安全
使用cert-manager给阿里云的DNS域名授权SSL证书
背景介绍cert-manager是Kubernetes上一个管理SSL证书的插件,配合nginx-ingress可以对网站配置https访问,在加上letsencrypt提供免费的SSL证书,所有就产生了cert-manager+nginx-ingress+letsencrypt的免费套餐。
8848 0
|
Kubernetes 容器 Perl
k8s配置hosts域名的几种方式
k8s配置hosts域名的几种方式
2801 0
|
应用服务中间件 网络安全 nginx
使用let's encrypt免费ssl证书启用网站https
网站启用https访问,首先需要一个证书机构颁发的ssl证书,目前给个人免费颁发证书的机构,比较好的是:let's encrypt。Let's Encrypt是由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起公共的免费SSL项目,免费,安装方便,配置简单,值得信赖。
10191 1
|
Linux
阿里云官方yum源
阿里云官方yum源
73456 0
|
10月前
|
存储 Kubernetes 网络协议
还不会 Cert Manager 自动签发证书?一文掌握
本文将介绍如何使用 Cert Manager 实现自动签发证书并与 Rainbond 结合使用。
|
10月前
|
应用服务中间件 nginx Docker
配置Containerd运行时镜像加速器
containerd配置国内容器镜像加速器
4033 1
|
JSON 运维 Kubernetes
|
存储 Kubernetes 应用服务中间件
Ingress-Nginx使用指南上篇
关于Ingress-Nginx在Kubernetes中的使用指南,涵盖了从基础安装到高级特性配置的详细步骤和实战案例。
5067 3
Ingress-Nginx使用指南上篇
|
存储 Kubernetes 网络协议
Cert Manager 申请 SSL 证书流程及相关概念 - 二
Cert Manager 申请 SSL 证书流程及相关概念 - 二
|
Kubernetes 容器
k8s ingress获取真实IP地址配置
背景 业务架构:Client->WAF->LB->ECS->容器问题:在容器中获取不到真实的客户端公网IP 抓包分析 在ECS上的抓包分析,看到WAF已经将 真实客户端地址放到了 x-Forwarded-For 的字段中传给了ECS ![image](https://yqfile.
17508 0