17, k8s 之 ingress
Posted k8s-pod
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17, k8s 之 ingress相关的知识,希望对你有一定的参考价值。
ingress 是如何访问到pod的呢? 1,ingress由ingress 控制器 和 规则组成。 2,ingress rule 负责找到对应的service,实现访问到pod。 我们知道service的表现形式为IP:PORT,即工作在第四层传输层(TCP/IP层),那么对于不同的URL地址经常对应用不同的后端服务或者虚拟服务器, 这些应用层的转发机制仅通过kubernetes的service机制是无法实现的,这种情况我么可以使用ingress策略定义和一个具体的ingress Controller, 两者结合实现一个完整的Ingress 负载均衡,这个负载均衡是基于nginx七层反向代理来实现的。 [root@centos7 demo]# [root@centos7 demo]# cat ingress.yml apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: example-ingress spec: rules: - host: example.ctnrs.com http: paths: - path: / backend: serviceName: web servicePort: 80 [root@centos7 demo]# [root@centos7 demo]# kubectl get pods NAME READY STATUS RESTARTS AGE web-5c987b8447-kptld 1/1 Running 0 6d21h web-5c987b8447-nwhcd 1/1 Running 0 4d14h web-5c987b8447-qjpz4 1/1 Running 0 4d14h [root@centos7 demo]# [root@centos7 demo]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 12d web NodePort 10.0.0.19 <none> 80:32045/TCP 4d14h web-1 ClusterIP 10.0.0.15 <none> 80/TCP 2d15h [root@centos7 demo]# [root@centos7 demo]# [root@centos7 demo]# kubectl apply -f ingress.yml ingress.networking.k8s.io/example-ingress unchanged [root@centos7 demo]# [root@centos7 demo]# kubectl get ing NAME HOSTS ADDRESS PORTS AGE example-ingress example.ctnrs.com 80 20m [root@centos7 demo]# [root@centos7 demo]# hosts 绑定: 192.168.0.11 example.ctnrs.com ingress 控制器在哪个节点,就用哪个节点的IP,来绑定对应的域名。 浏览器访问: example.ctnrs.com
以上是关于17, k8s 之 ingress的主要内容,如果未能解决你的问题,请参考以下文章
云原生之kubernetes实战在k8s集群下部署ingress对外访问服务