ngress-nginx

ingress介绍

  • Node(节点): kubernetes集群中的一台虚拟机或物理机。
  • Cluster(集群): 一组与因特网通过隔离的节点,他们是是Kubernetes管理的主要计算资源。
  • Edge router(边界路由器): 为您的集群强制执行防火墙策略的路由器。这可以是由云提供商管理的网关,也可以是物理硬件。
  • Cluster network(集群网络): 根据Kubernetes网络模型,促进集群内通信的一组逻辑上的或物理上的链路。
  • Service(服务): 一种Kubernetes服务,它使用标签选择器标识一组pod。除非另有说明,否则假定服务只有在集群网络中可路由的虚拟ip。

什么是ingress

ingress(在kubernetes v1.1时添加)暴露从集群外到集群内服务的HTTPHTTPS路由。定义在ingress资源上的规则控制流量的路由。

ingress实操


官网下载ingress-nginx部署所需资源清单,修改镜像get地址为本地harbor仓库。

vim deploy.yaml
##修改镜像文件路径harber仓库减少拉取时间

324           image: ingress-nginx/controller:v0.48.1
589           image: ingress-nginx/kube-webhook-certgen:v1.5.1
637           image: ingress-nginx/kube-webhook-certgen:v1.5.1

[root@server2 ingress]# kubectl apply -f deploy.yaml

[root@server2 ingress]# kubectl get ns

查看生成的namespace状态

[root@server2 ingress]# kubectl -n ingress-nginx get all

查看ingress-nginx的所有信息,可以看到ingress-nginx-controller已经running

[root@server2 ingress]# kubectl -n ingress-nginx get svc

##查看svc暴露端口

域名访问+ingress-nginx

[root@server2 ingress]# cat svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: nginx

---

apiVersion: v1
kind: Service
metadata:
  name: myapp-svc
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: myapp

拉起服务并查看endpoint

[root@server2 ingress]# kubectl get svc

[root@server2 ingress]# kubectl describe svc nginx-svc 

\

修改svc配置文件为负载均衡

 查看修改内容

[root@server2 ingress]# kubectl -n ingress-nginx get svc

 可以通过此方式动态分配IP,而不是占用主机资源

为标签为nginx-svc myapp-svc的deployment添加服务

[root@server2 ingress]# cat svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: nginx

---

apiVersion: v1
kind: Service
metadata:
  name: myapp-svc
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: myapp

配置服务与ingress连接,并给定域名

[root@server2 ingress]# cat ingress.yaml 
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-nginx
spec:
  rules:
  - host: www1.westos.org
    http:
      paths:
      - path: /
        backend:
          serviceName: nginx-svc
          servicePort: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-myapp
spec:
  rules:
  - host: www2.westos.org
    http:
      paths:
      - path: /
        backend:
          serviceName: myapp-svc
          servicePort: 80

 添加本地解析

[root@foundation8 2]# vim /etc/hosts

172.25.8.11     www1.westos.org www2.westos.org

测试负载均衡

 结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值