赞
踩
官方简介在https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md,
执行如下命令:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
执行如下代码检查部署情况
kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx --watch
安装完成后,执行如下命令检查ingress版本号
- POD_NAMESPACE=ingress-nginx
- POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}')
- kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version
之后在https://github.com/kubernetes/ingress-nginx/releases下载对应版本的代码
进入ingress-nginx-nginx-0.22.0/deploy目录,执行kubectl create -f mandatory.yaml
创建映射文件ingress-echoheaders.yaml,其中需要根据映射的服务修改name、serviceName、servicePort,服务可以通过kubectl get svc --all-namespaces查询
- apiVersion: extensions/v1beta1
- kind: Ingress
- metadata:
- name: ingress-echoheaders
- annotations:
- # use the shared ingress-nginx
- kubernetes.io/ingress.class: "nginx"
- spec:
- rules:
- - host: echoheaders.test.com
- http:
- paths:
- - path: /
- backend:
- serviceName: echoheaders
- servicePort: 80

执行kubectl create -f ingress-echoheaders.yaml
执行kubectl get ingresses.extensions即可检查到映射关系
进入ingress-nginx-nginx-0.21.0/deploy/provider/baremetal,修改service-nodeport.yaml文件,加入externalIPs,并设置为需要指定的虚拟ip,注意此IP应与node处于同一网段,并且没有被占用
-
- apiVersion: v1
- kind: Service
- metadata:
- name: ingress-nginx
- namespace: ingress-nginx
- labels:
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- spec:
- externalIPs:
- - 10.66.66.66
- type: NodePort
- ports:
- - name: http
- port: 80
- targetPort: 80
- protocol: TCP
- - name: https
- port: 443
- targetPort: 443
- protocol: TCP
- selector:
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx

5. ingress搭建完成如下所示:
- [root@node33 ~]# kubectl get svc -n ingress-nginx
- NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
- ingress-nginx NodePort 10.233.10.206 10.66.66.66 80:32361/TCP,443:30510/TCP 81m
- [root@node33 ~]# kubectl get ingresses.extensions
- NAME HOSTS ADDRESS PORTS AGE
- ingress-echoheaders echoheaders.test.com 10.66.66.66 80 3d3h
最后在同网段的任意一台服务器上,对/etc/hosts文件进行修改,增加
10.66.66.66 echoheaders.test.com
执行curl echoheaders.test.com即可看到效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。