qq78707 发表于 2018-1-6 09:04:41

在k8s上配置ingress并启用HTTPS证书

第一步,定义Secret文件
  该文件设置tls的证书私钥和公钥内容,通过base64编码的内容
  
tls.crt: 证书公钥
  
tls.key: 证书私钥
  
示例
  

apiVersion: v1  
kind: Secret
  
metadata:
  
name: secret
-tls  
data:
  
tls.crt: xxxxx cat xxx.crt
| base64 -w 0  
tls.key: xxxxx cat xxx.pem
| base64 -w 0  
type: kubernetes.io
/tls  


第二步,定义ingress文件
  如果希望http的强制转到https,把ingress.kubernetes.io/ssl-redirect设为true
  
hosts:如果是泛域名*,则需要添加该泛域名的定义
  
secretName:上一步的secret名称
  
backend:对应后端的service名称和端口
  
示例
  

apiVersion: extensions/v1beta1  
kind: Ingress
  
metadata:
  
name: secret
-tls-ingress  
annotations:
  
ingress.kubernetes.io
/ssl-redirect: "False"  
spec:
  
tls:
  

- hosts:  

- aaa.com  

- "*.aaa.com"  
secretName: secret
-tls  
rules:
  

- host: aaa.com  
http:
  
paths:
  

- backend:  
serviceName: jira
-svc  
servicePort:
9000  
path:
/  


第三步,部署secret,ingress文件
  

kubectl create -f xxx.yml  

  

第四步,重启ingress-controller组件
  由于目前的ingress-controller版本对tls证书的bug,需要重新启动才能生效
页: [1]
查看完整版本: 在k8s上配置ingress并启用HTTPS证书