k8s ingress

k8s ingress 即“service”的“service”,通过七层协议访问。

ingress描述


apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-ingress
spec:
  tls:
  - hosts:
    - hello.example.com
    secretName: my-secret
  rules:
  - host: hello.example.com
    http:
      paths:
      - path: /hello
        backend:
          serviceName: hello-svc
          servicePort: 80
      - path: /greet
        backend:
          serviceName: greet-svc
          servicePort: 80

例如上面的ingress,这个ingress定义了两个url,通过这两个url可以访问到k8s内部的两个service。

通过ingress,就可以实现 k8s 外部访问k8s内部,在ingress这一层提供反向代理能力,访问到内部的service,这样一个ingress可以访问很多个service,就不需要像NodePort一样每个service都要暴漏一个端口。

ingress实现

这里ingress本身是一个开放实现,目前有Nginx、HAProxy、Envoy等各种实现,首先要使用厂家实现安装好ingress-controller,然后创建ingress的时候controller就会根据ingress的提交创建对应的反向代理服务,

小结

ingress是基于service在7层上的一种对象,并且k8s 对外提供了标准定义,各厂商安定义实现定义的controller,即可提供对应的ingress功能,用户创建ingress来从k8s外部访问k8s内部,这样可以避免NodePort方式每个service都要消耗一个端口。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容