ingress部署

1. ingress的部署方

官方简介在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下载对应版本的代码

2. 启动ingress pod:

进入ingress-nginx-nginx-0.22.0/deploy目录,执行kubectl create -f mandatory.yaml

3. 建立映射规则:

创建映射文件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即可检查到映射关系

4. 创建ingress服务:

进入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即可看到效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值