在aks中创建ssl证书,在哪里将其添加到在aks中具有kind服务的负载均衡器的清单文件中?



我在azure集群上有loadbalancer类型的kubernetes服务。该服务必须接受HTTPS请求。如何创建ssl证书并在注释中添加它们?

我读了不同的文章,但我对ingress, cert-manager和其他东西非常困惑

回答您的问题,服务不接受任何注释。因此,要在应用程序中使用ssl/tls,入口是最佳选择。以下是微软官方指南,将帮助您完成使用LetsEncrypt cert-manager设置入口控制器的每个步骤。

如果您想从任何已知的CA使用您的BYOC(携带您自己的证书),以下是步骤。

请遵循上述URL提供的指南,直到使用动态IP地址.

kubectl --namespace ingress-basic get services -o wide -w nginx-ingress-ingress-nginx-controller
NAME                                     TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                      AGE   SELECTOR
nginx-ingress-ingress-nginx-controller   LoadBalancer   10.0.74.133   EXTERNAL_IP     80:32486/TCP,443:30953/TCP   44s   app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx

使用CA提供的。crt和。key文件创建和创建秘密。

kubectl create secret tls TargetPods-tls --cert nameOfCertfile.crt --key privateKey.key --namespace default

在你的入口对象中使用这些秘密,并为http添加注释到https重定向

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-redirect: 'true' # Annotation to redirect http to https.
name: TargetPods-6dc98445c4-jr6pt
spec:
tls:
- hosts:
- test.domain.io
secretName: TargetPods-tls
rules:
- host: test.domain.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: TargetPod-6dc98445c4-jr6pt
port:
number: 80

最新更新