k8s1.23 使用cert-manager自动签发阿里云DNS域名证书
生活随笔
收集整理的這篇文章主要介紹了
k8s1.23 使用cert-manager自动签发阿里云DNS域名证书
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
環境信息:
k8s:1.23.1
helm:3.8.1
已備案域名:chandz.com
一、基礎環境配置
0、鏡像列表
quay.io/jetstack/cert-manager-cainjector:v1.7.2 quay.io/jetstack/cert-manager-controller:v1.7.2 quay.io/jetstack/cert-manager-webhook:v1.7.2 pragkent/alidns-webhook:0.1.11、安裝cert-manager
yaml安裝: kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.2/cert-manager.yamlhelm 安裝 helm repo add jetstack https://charts.jetstack.io helm search repo cert-manager kubectl create namespace cert-managerhelm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.7.2 --set installCRDs=true2、獲取阿里云ak/sk(權限為AliyunDNSFullAccess,也可以使用自定義權限,具體可參考阿里云官方文檔)
3、創建一個有阿里dns修改權限ak/sk的secert
4、安裝alidns的webhook
wget https://raw.githubusercontent.com/pragkent/alidns-webhook/master/deploy/bundle.yaml修改文件中的acme.yourcompany.com為自己的域名 sed -i s/'acme.yourcompany.com'/'acme.chandz.com'/g bundle.yaml5、創建clusterIssuer
kubectl apply -f clusterissuer.yaml kubectl get clusterissuers.cert-manager.io #clusterissuer.yaml apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata:name: letsencrypt spec:acme:# Change to your letsencrypt emailemail: duanshuaixing@gmail.com #申請者郵箱地址server: https://acme-v02.api.letsencrypt.org/directoryprivateKeySecretRef:name: letsencrypt-account-keysolvers:- dns01:webhook:groupName: acme.chandz.com #須和bundle.yaml文件中定義的groupname 一致solverName: alidnsconfig:region: ""accessKeySecretRef:name: alidns-secretkey: access-keysecretKeySecretRef:name: alidns-secretkey: secret-key6、創建certificate
#創建certificate kubectl apply -f certificate.yaml#查看 certificate kubectl get certificate #剛創建certificate ready狀態為false,會自動在dns解析創建txt記錄去簽發證書ready字段會變為true#查看證書 kubectl get secrets chandz-com-tls -o json |jq --raw-output '.data["tls.crt"]'|base64 -d #certificate.yaml apiVersion: cert-manager.io/v1 kind: Certificate metadata:name: chandz-com-tls spec:secretName: chandz-com-tlsdnsNames: #dnsNames 指示該證書的可以用于哪些域名- chandz.com- "*.chandz.com"issuerRef:name: letsencryptkind: ClusterIssuer二、使用證書
kubectl apply -f nginx.yaml #nginx.yaml --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginxname: nginx spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:latestname: nginximagePullPolicy: IfNotPresent --- apiVersion: v1 kind: Service metadata:name: nginx-httpsnamespace: default spec:ports:- port: 80protocol: TCPtargetPort: 80selector:app: nginx --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: tls-ingress spec:ingressClassName: nginxrules:- host: "tls-test.chandz.com"http:paths:- pathType: ImplementationSpecificpath:backend:service:name: nginx-httpsport:number: 80tls:- hosts:- tls-test.chandz.comsecretName: chandz-com-tls
三、代碼地址
https://github.com/duanshuaixing/tools/tree/master/cert-mamager總結
以上是生活随笔為你收集整理的k8s1.23 使用cert-manager自动签发阿里云DNS域名证书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 18春计算机基础在线作业,东大18春《计
- 下一篇: spark专业术语解释