软件开发架构师

kubernetes 学习 ingress

架构 65 2019-03-22 22:54

  ingress是Kubernetes 暴露服务的一种方式。

  Ingress由两部分组成:Ingress Controller 和 Ingress 服务。

     Ingress Contronler 通过与 Kubernetes API 交互动态的去感知集群中 Ingress 规则变化,然后读取它,按照自定义的规则(规则就是写明了哪个域名对应哪个service),生成一段 Nginx 配置,再写到 Nginx-ingress-control的 Pod 里,这个 Ingress Contronler 的pod里面运行着一个nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中,然后 reload 一下 使用配置生效。以此来达到域名分配置及动态更新的问题。

 

   ingress控制器有两种:nginx和haproxy 这里是以nginx为讲解。

 

1:查看ingress

  kubectl get ing -n default

 

2:   编辑ingress,而后会自动重启。

        kubectl edit ing  XXXXXXXXX   

3:    查看pod

   kubectl get pods -n namespace

4:    查看log

        kubectl logs -f pod_name  -n namespace

5: 查看ingress详情

   Kubectl get ing –o yaml

6: Ingress 配置详解

  apiVersion/kind/metadata是必须的。
  Ingress spec用来配置loadbalancer(负载均衡)或者proxy server(代理服务器).更重要的是它包含了一系列的规则来匹配请求. 
  每个http规则包含了如下的信息, 一个host(比如foo.bar.com, 默认为*), 路径的列表(比如/testpath)每个关联一个后端(test:80), 如果host和path都匹配上了                         
请求,将会通过loadbalancer转发到后端. 

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  rules:
 - host:foo.bar.com
http: paths: - path: /testpath backend: serviceName: test servicePort: 80

 

文章评论