听说会Traefik就一定会Ingress-nginx

format,png

分享都要写在前面,在IDEA中使用Kubernetes插件查看和管理你的容器组

  • 编写配置清单,智能提示,体验俱佳

  • 无需命令行,应用配置清单,创建容器组

  • 无需登录平台,查看容器组运行状态

  • 双机Pod名称,直接在编辑区显示Pod的配置清单等等...

format,png

通过IDEA管理你的Kubernetes

好了,分享之后进入正题。????前段时间在使用ingress controller的时候选择的是traefik,最近新起的一台Kubernetes集群中,使用的是ingress controller,对于不同的ingress控制器,虽然使用理念都是差不多,但是实际使用区别上还是有些不同,接下来将会对Ingress Controller进行深入的学习和研究。依旧是如往常一样,在体验不同方案最好的理解就是上手折腾一番,以下就首先开始ingress controller的安装部署

开发集群环境

我们将在以下环境内进行一些学习和研究。K8s集群信息

☸️  kubernetes-admin@kubernetes???? default  ???? ???? k get nodes
NAME      STATUS   ROLES    AGE    VERSION
master1   Ready    master   5d9h   v1.18.0
node1     Ready    <none>   5d9h   v1.18.0
node2     Ready    <none>   5d9h   v1.18.0
node3     Ready    <none>   5d9h   v1.18.0
node4     Ready    <none>   5d9h   v1.18.0

部署ingress-nginx

与traefik一样,ingress-nginx同样是部署在公网的边缘节点上,通过暴露一个端口,以及一系列的自定义规则将公网流量代理到集群内的service。ingress-nginx与traefik具体的使用还是有很大的区别,以后在使用中再说

  • ingress-nginx默认监听所有的namespace,可以通过--watch-namespace指定

  • 如果多个ingress中指定的host是一样的,那么ingress会合并paths

部署ingress-nginx

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml
# using NodePort
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml
# 验证服务的运行状态
kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx --watch
# 查看ingress-controller运行的状态
☸️  kubernetes-admin@kubernetes???? ingress-nginx   master ●  ???? ???? POD_NAMESPACE=ingress-nginx   
☸️  kubernetes-admin@kubernetes???? ingress-nginx   master ●  ???? ???? POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.nme}')
☸️  kubernetes-admin@kubernetes???? ingress-nginx   master ●  ???? ???? 
☸️  kubernetes-admin@kubernetes???? ingress-nginx   master ●  ???? ???? kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version
-------------------------------------------------------------------------------
NGINX Ingress controller
  Release:       0.30.0
  Build:         git-7e65b90c4
  Repository:    https://github.com/kubernetes/ingress-nginx
  nginx version: nginx/1.17.8

-------------------------------------------------------------------------------

format,png

查看ingress-nginx的部署状态

验证Ingress-nginx

接下来将通过一个tomcat服务来验证ingress-nginx是否可用,这里将会通过deployment部署三个副本的tomcat容器,然后暴露tomcat的8080端口以及8009(ajp). 配置文件名为: tomcat.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat
  namespace: default
  labels:
    app: tomcat
spec:
  replicas: 3
  template:
    metadata:
      name: tomcat
      labels:
        app: tomcat
        release: canary
    spec:
      containers:
        - name: tomcat
          image: tomcat:8.5.32-jre8-alpine
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
  selector:
    matchLabels:
      app: tomcat
      release: canary
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat-svc
  namespace: default
spec:
  selector:
    app: tomcat
    release: canary
  ports:
    - port: 8080
      name: http
      targetPort: 8080
    - name: ajp
      targetPort: 8009
      port: 8009
---
kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: ingress-tomcat
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - host: tomcat.local.com
      http:
        paths:
          - path: /
            backend:
              serviceName: tomcat-svc
              servicePort: http

查看tomcat的运行状态

format,png

tomcat服务运行状态

最后,与traefik相似,我们通过域名以及ingress-nginx-controller暴露出来的NodePort端口进行访问.此处需要添加本地的DNS解析

format,png

添加本地域名解析

然后即可在浏览器中访问

format,png

浏览器中访问服务

format,png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生生态圈

你的鼓励是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值