我是k8s的新手,无法了解如何将SSL与Ingress结合使用。 这是我的应用程式Yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
annotations: {}
name: app-name
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: app-name
template:
metadata:
labels:
app: app-name
spec:
containers:
- name: app-name
image: dockerhub:app-name
imagePullPolicy: Always
ports:
- containerPort: 80
imagePullSecrets:
- name: registrypullsecret
入口Yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
kubernetes.io/ingress.class: nginx
ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- sub.example.com
secretName: tls-secret
rules:
- host: sub.example.com
http:
paths:
- backend:
serviceName: app-name
servicePort: 80
path: /
还有我的tls-secret yaml
apiVersion: v1
kind: Secret
metadata:
name: tls-secret
namespace: default
data:
tls.crt: |
MIIFfD...
tls.key: |
MIIEvQ...
我的应用托管在DigitalOcean上,但我使用外部DNS。我通过
应用了tls-secretkubectl apply -f tls-secret.yaml
并尝试在浏览器中打开应用程序,但它仍然不安全。浏览器说证书无效“ Kubernetes入口控制器伪证书” 我应该做一些额外的配置还是清单文件中有错误?
答案 0 :(得分:1)
我建议您只需遵循以下提到的步骤-
使用基于头盔图表的步骤从here安装cert-manager
请注意-您无需在此处创建tls机密,cert-manager将通过证书中提到的名称自动创建机密,一旦您将机密名称修补到TLS并成功,cert-manager就会进行acme挑战,证书将获得就绪状态。
使用
cert-manager.io/v1alpha2
此群集发行者中的api版本,如果其中提到的一个不可接受