Ingress

Yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: xxx.ctg.com  # optional
    http:
      paths:
      - path: /foo
        backend:
          serviceName: service1
          servicePort: xx

HTTPS

假设我们想通过https://tomcat.ctg.com来访问tomcat服务,步骤如下。

首先,制作证书,此处我们使用自签名证书

生成的tls.key与tls.crt的内容如下

然后,创建一个secret,用来存储tls.key与tls.crt。在存储tls.key与tls.crt文件内容到secret时,要把文件的首尾两行去掉,然后把中间的行拼成一行(即去掉换行符),最后secret的内容如下:

然后,创建一个Ingress(记得要创建deployment与service)

然后,我们在就能访问了https://tomcat.ctg.com了

未定义行为

1. 同一个Ingress中path相同

以上的Ingress可以创建成功,不会报错,但是当我们访问x.x.x.x:80/foo时,是不确定Nginx-Ingress-Controller会转发到test:8080还是test:8081

2. 两个Ingress的Host相同

非法行为

1. 同一个Ingress中的Host相同

以下Yaml文件创建时会报错,因为host一样

Last updated

Was this helpful?