在安装好 Nginx ingress controller后我们可以得到一个IP和 IngressClass
这个时候我们就需要把我们的域名test.malema.net指向这个IP:81.68.82.142 (上一步得到的) (windows下面C:\Windows\System32\drivers\etc\hosts 是本地的dns解析文件,测试的情况下也可以在这边更改dns解析) 然后编写一个 ingress.yaml文件
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
namespace: malema-test
annotations:
# nginx.ingress.kubernetes.io/rewrite-target: / 这个是可以不要的,加了的话 多个backend service 并且 path:/test 这种会导致它也跳到根目录
spec:
ingressClassName: nginx
tls: # 没有证书 tls这段可以不用
- hosts:
- test.malema.net
secretName: test-ingress-tls
rules:
- host: test.malema.net
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: web # 我们的 service (要自己创建好。)
port:
number: 80
注意把namepsace切到 malema-test跟上面的 ingress.yaml一样 证书提供商一般会提供 pfx的格式还有 key 和 crt格式的证书文件
没有ssl证书的也可以先用openssl来创建一个测试的自签名证书
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout aks-ingress-tls.key -out aks-ingress-tls.crt -subj "/CN=malema.net" -addext "subjectAltName=DNS:malema.net,DNS:www.malema.net"
通过下面的命令创建一个 secret.
kubectl create secret tls test-ingress-tls \
--key aks-ingress-tls.key \
--cert aks-ingress-tls.crt
使用 如下的命令执行它
kubectl apply -f ingress.yaml
如果一切没有错的话,我们可以用浏览器打开 test.malema.net了。
备注:Ingress 是kubernetes里面的一个标准资源。只要有装Ingress 控制器。 这个ingress就可以工作, annotations除外,因为它们可能不认。