2004 发表于 2018-1-5 06:01:51

Kubernetes – Ingress

  用户在 Kubernetes 上部署的服务一般运行于私有网络,Pod和Service 提供了 hostPort,NodePort等参数用于暴露这些服务端口到K8S节点上,供使用者访问。这样的方法有明显缺点:
  1)容易占用过多的主机端口;
  2)服务端口暴露到多台主机会增加防火墙和安全配置的难度
  3)默认的hostPort,NodePort方式没有负载均衡的作用
  K8S的 Ingress 资源提供了另一种服务暴露的方法,它可以获取各个服务的状态,传递给nginx等工具进行配置修改、重新加载等工作,实现负载均衡、虚拟主机、SSL等功能。并且它只需要占用一台主机的80、443、8080三个端口就可以为所有HTTP服务实现上述功能。
  关于nginx ingress的安装,K8S有相关说明,网上也有很多文档可参考:
  https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx
  

apiVersion: v1  
kind: Service
  
metadata:
  
name: gitlab
-svc  

namespace: gitlab5  
spec:
  
ports:
  

- port: 80  
name: web
  
selector:
  
name: gitlab
  

---  
apiVersion: extensions
/v1beta1  
kind: Ingress
  
metadata:
  
name: git.mydomain.com
  

namespace: gitlab5  
spec:
  
rules:
  

- host: git.mydomain.com  
http:
  
paths:
  

- path: /  
backend:
  
serviceName: gitlab
-svc  
servicePort:
80  
页: [1]
查看完整版本: Kubernetes – Ingress