第一个 ingress

在安装好 Nginx ingress controller后我们可以得到一个IP和 IngressClass

这个时候我们就需要把我们的域名test.malema.net指向这个IP:81.68.82.142 (上一步得到的) (windows下面C:\Windows\System32\drivers\etc\hosts 是本地的dns解析文件,测试的情况下也可以在这边更改dns解析) 然后编写一个 ingress.yaml文件

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

创建一个证书 secret

注意把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

执行 ingress.yaml

使用 如下的命令执行它

kubectl apply -f ingress.yaml

如果一切没有错的话,我们可以用浏览器打开 test.malema.net了。

备注:Ingress 是kubernetes里面的一个标准资源。只要有装Ingress 控制器。 这个ingress就可以工作, annotations除外,因为它们可能不认。

最近更新的
...