简介
支持版本
配置双证书的 ingress-controller 组件版本最低要求为 v2.5.0。
说明:
您可以通过 提交工单 确认组件版本是否满足要求,也可以通过查看
kube-system
命名空间下 tke-service-controller-config
和 tke-ingress-controller-config
的 ConfigMap 中的 VERSION
字段值来确认 service-controller 和 ingress-controller 版本。注意事项
Secret 最多支持两个不同算法类型的证书。
Secret 的类型必须为
Opaque
。使用双算法证书的 Secret,暂不支持在 SSL 控制台自动更新,用户需要手动在 Secret 中替换新的证书 ID,TKE 会将新的证书 ID 同步到 CLB。
使用双算法证书的 Secret 暂时只支持配置给 Ingress,不支持特殊协议监听器。
Secret 需与 Ingress 在同一个命名空间。
操作步骤
1. 创建 Opaque 类型 Secret
方式1:使用 stringData 区域的键值对,value 会自动 BASE64 加密
apiVersion: v1stringData:qcloud_cert_id: CertID1,CertID2 # 填写证书ID,用逗号(英文)作为分隔符kind: Secretmetadata:name: kateway-certtype: Opaque
方式2:用户手动对证书 ID 进行 BASE64 加密
apiVersion: v1data:qcloud_cert_id: (base64) CertID1,CertID2 # 提前对 CertID1,CertID2 BASE64加密kind: Secretmetadata:name: kateway-certtype: Opaque
方式3:在控制台创建 Secret(无需手动 BASE64 加密)


2. 部署工作负载
apiVersion: apps/v1kind: Deploymentmetadata:name: nginxspec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:latestimagePullPolicy: Alwaysname: nginx
3. 创建 NodePort Service
apiVersion: v1kind: Servicemetadata:name: nginxlabels:app: nginxservice: nginxspec:ports:- name: httpport: 80targetPort: 80selector:app: nginxtype: NodePort
4. 创建 Ingress,域名关联 Secret
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: nginxspec:rules:- host: <domain>http:paths:- backend:service:name: nginxport:number: 80path: /pathType: ImplementationSpecifictls:- hosts: # 有 hosts 会默认开启 sni, 这样证书会配置到 rule 级别- <domain>secretName: <secret>
说明:
<domain>
替换成您的域名。<secret>
替换成您的 Secret。