基于Traefik与CertManager为K8s中HTTPS后端服务配置证书
为Kubernetes中my-app2配置Traefik+CertManager证书方案
你可以直接在已有的prod-ingress资源中添加my-app2的路由规则,同时适配其本身的HTTPS服务特性,具体操作如下:
步骤1:适配my-app2的Service配置(可选但推荐)
因为my-app2本身是HTTPS服务,为了让Traefik明确使用HTTPS协议转发请求到后端,建议修改my-app2的Service,添加appProtocol: https标识:
apiVersion: v1 kind: Service metadata: name: my-app2 namespace: my-ns spec: type: NodePort ports: - name: https port: 2746 targetPort: 2746 nodePort: 30972 protocol: TCP appProtocol: https # 标记该端口为HTTPS协议 selector: app: my-app2 # 替换为你的my-app2 Pod实际标签
执行更新命令:
kubectl apply -f my-app2-service.yaml
步骤2:更新Ingress资源添加my-app2路由
修改现有的prod-ingress,在rules的paths下新增my-app2的路径规则:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: prod-ingress namespace: my-ns annotations: cert-manager.io/cluster-issuer: letsencrypt-prod kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/router.tls: "true" spec: tls: - hosts: - "my-dns.com" secretName: prod-cert rules: - host: "my-dns.com" http: paths: - path: /app1 pathType: Prefix backend: service: name: my-app1 port: number: 16686 # 新增my-app2的路由规则 - path: /app2 pathType: Prefix backend: service: name: my-app2 port: number: 2746
执行更新命令:
kubectl apply -f prod-ingress.yaml
验证配置
等待Ingress和证书状态同步后,即可通过https://my-dns.com/app2访问my-app2服务。你可以通过以下命令检查资源状态:
# 检查Ingress状态 kubectl get ingress prod-ingress -n my-ns # 检查证书状态 kubectl get certificates prod-cert -n my-ns
内容的提问来源于stack exchange,提问作者Rupesh Shinde
相关产品推荐
相关产品推荐

