Cert-manager 部署

简介: 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的免费套餐。
9966 0
|
11月前
|
存储 Prometheus 监控
使用helm快速部署prometheus+Grafana
通过Helm快速部署Prometheus监控栈:添加仓库、更新缓存并安装kube-prometheus-stack。建议创建独立命名空间(如monitoring)进行隔离,使用`port-forward`临时访问Prometheus和Grafana界面。通过自定义values.yaml文件可配置持久化、密码等参数,实现灵活管理。
1300 0
|
1月前
|
机器学习/深度学习 人工智能 API
Qwen3.8-Max 开源了:该不该从 Claude 切过去?
阿里正式发布2.4万亿参数旗舰Qwen3.8-Max,支持100万上下文与原生多模态,激活95B参数,推理成本仅6美元/百万token。下周将开源Max系列权重——史上首次,兼具强编码、长程智能体与办公自动化能力,但标准编程基准仍略逊Fable 5。(239字)
|
7月前
|
运维 Kubernetes 应用服务中间件
一文讲解kubernetes的gateway Api的功能、架构、部署、管理及使用
Gateway API是Kubernetes官方推出的下一代L4/L7网络网关标准,面向角色(基础设施商、运维、开发)、可移植、表达力强且高度可扩展。它通过GatewayClass、Gateway、HTTPRoute等资源实现权限分离与策略即代码,替代Ingress短板,已获Istio、Envoy、ASM等主流支持。
2057 119
|
9月前
|
Kubernetes 负载均衡 网络协议
【k8s-1.34.2安装部署】一.系统初始化及k8s集群规划
k8s1.34.2的安装总体没什么变化,主要在于结合最新版本的containerd、gateway Api、istio、cilium进行安装,新版本的一些软件和旧的存在一些区别。本章节主要是通过搭建最新版的k8s集群,并搭建gateway Api来进行一些[xkube](https://gitee.com/eeenet/xkube)开发环境的调试和部署,现将整个k8s1.34.2的安装过程进行记录。
1702 23
|
存储 Kubernetes 网络协议
还不会 Cert Manager 自动签发证书?一文掌握
本文将介绍如何使用 Cert Manager 实现自动签发证书并与 Rainbond 结合使用。
|
运维 Kubernetes 数据可视化
helm-diff:显示Helm升级变更的diff插件
helm-diff:Helm插件,解决Kubernetes应用升级前难以知晓具体资源变更的痛点。通过生成当前部署版本与升级计划的差异对比,将抽象升级操作转化为可视化资源变更,支持升级前预览,让每一次变更清晰可见,提升应用管理可控性。
665 5
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
1231 2
|
Kubernetes 应用服务中间件 nginx
k8s学习--k8s集群使用容器镜像仓库Harbor
本文介绍了在CentOS 7.9环境下部署Harbor容器镜像仓库,并将其集成到Kubernetes集群的过程。环境中包含一台Master节点和两台Node节点,均已部署好K8s集群。首先详细讲述了在Harbor节点上安装Docker和docker-compose,接着通过下载Harbor离线安装包并配置相关参数完成Harbor的部署。随后介绍了如何通过secret和serviceaccount两种方式让Kubernetes集群使用Harbor作为镜像仓库,包括创建secret、配置节点、上传镜像以及创建Pod等步骤。最后验证了Pod能否成功从Harbor拉取镜像运行。
3403 0