一、支持版本
配置双证书的 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:使用 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 加密)
通过控制台创建 Secret,操作步骤请参见 创建 Secret。
六、2. 部署工作负载
apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: – image: nginx:latest imagePullPolicy: Always name: nginx
七、3. 创建 NodePort Service
apiVersion: v1kind: Servicemetadata: name: nginx labels: app: nginx service: nginxspec: ports: – name: http port: 80 targetPort: 80 selector: app: nginx type: NodePort
八、4. 创建 Ingress,域名关联 Secret
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: nginxspec: rules: – host: <domain> http: paths: – backend: service: name: nginx port: number: 80 path: / pathType: ImplementationSpecific tls: – hosts: # 有 hosts 会默认开启 sni, 这样证书会配置到 rule 级别 – <domain> secretName: <secret>
注意:说明: