添加helm仓库
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
拉取ingress-nginx包
helm pull ingress-nginx/ingress-nginx
启用ingress class
进入pull下的ingress helm包中,修改values.yml文件中的如下内容,启用ingress class(由于使用的k8s环境中存在多个ingress controller 所以需要启用ingressclass)
vi values.yml
ingressClassResource:
name: test-nginx
enabled: true
default: false
controllerValue: "k8s.io/test-ingress-nginx"
parameters: {}
ingressClass: test-nginx
最后启用安装使用ingress-nginx
helm install 自定义名称 --namespace 被安装的命名空间 ingress的包文件夹名
安装好后 ingress-nginx-controller部署完成
最后的最后,按如下范例新建ingress:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
#values.yaml中自定义的ingressclass名称
kubernetes.io/ingress.class: hainan-nginx
name: example
namespace: foo
spec:
rules:
- host: www.example.com
http:
paths:
- backend:
serviceName: exampleService
servicePort: 80
path: /
# This section is only required if TLS is to be enabled for the Ingress
tls:
- hosts:
- www.example.com
secretName: example-tls
If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:
apiVersion: v1
kind: Secret
metadata:
name: example-tls
namespace: foo
data:
tls.crt: <base64 encoded cert>
tls.key: <base64 encoded key>
type: kubernetes.io/tls