容器云平台No.4~kubernetes 服务暴露之Ingress

网友投稿 246 2022-10-27

容器云平台No.4~kubernetes 服务暴露之Ingress

这是容器云平台第四篇,接上一篇继续,首先kubernetes服务暴露有如下几种方式:

NodePort Loadbalance ClusterIP Ingress

本文紧贴第一篇架构图,只介绍Ingress,其余的后续再详细说。。

Ingress是什么?

Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP,当然TCP也是可以管理滴。Ingress 可以提供负载均衡、SSL 终结和基于域名的虚拟托管。大白话就是:把kubernetes集群生部署的服务暴露出来,让集群外部的用户或者服务能访问到。

能为kubernetes提供ingress的控制器很多,本文就用基于HAProxy的控制器:Haproxy Ingreess。HAProxy是一个快速可靠的TCP和HTTP反向代理和负载均衡器。当然,一个kubernetes集群也可以同时部署多种ingress控制器。

HAProxy Ingress

HAProxy Ingress 通过监控Kubernetes API,获取services后端的pod状态,动态更新haproxy的配置文件,以实现负载均衡。它允许每个代理每秒有数千个请求,不管集群的大小,具有非常低的延迟。

简单做个介绍,接下来开始实战。

部署HAProxy Ingress到kubernetes集群

使用Ingress暴露服务

这里使用上一篇部署的nginx作为示例,部署上篇,现在查看下nginx状态

[root@k8s-master001 ~]# kubectl get po,svc NAME READY STATUS RESTARTS AGE pod/nginx-0 1/1 Running 0 32h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 443/TCP 2d2h service/nginx NodePort 10.106.27.213 80:30774/TCP 32h

可以看到有一个名为nginx的service

[root@k8s-master001 ~]# cat ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: nginx annotations: kubernetes.io/ingress.class: haproxy spec: rules: - host: nginx.ieasou.cn http: paths: - path: / backend: serviceName: nginx servicePort: 80

执行部署,会有个Warning,因为kubernetes apiVersion更新,以后会不在支持extensions/v1beta1,这里不影响,先忽略。

[root@k8s-master001 ~]# kubectl apply -f ingress.yaml Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress ingress.extensions/nginx configured

查看部署结果

[root@k8s-master001 ~]# kubectl get ing NAME CLASS HOSTS ADDRESS PORTS AGE nginx nginx.test.cn 80 21m

现在,需要自己把nginx.test.cn解析到haproxy-ingresss所在节点的IP,本文haproxy-ingresss部署到了master003(10.26.25.22)测试的话,直接修改/etc/hosts文件,然后可以访问nginx.test.cn

[root@k8s-master001 ~]# curl -I nginx.text.cn HTTP/1.1 200 OK server: nginx/1.19.2 date: Sat, 12 Sep 2020 12:40:01 GMT content-type: text/html content-length: 612 last-modified: Tue, 11 Aug 2020 14:50:35 GMT etag: "5f32b03b-264" accept-ranges: bytes strict-transport-security: max-age=15768000

注:文中图片来源于网络,如有侵权,请联系我及时删除。Tips: 更多好文章,请关注公*号“菜鸟运维杂谈”!!!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于I2C总线的银行排队系统接口设计
下一篇:spring boot集成p6spy的最佳实践
相关文章

 发表评论

暂时没有评论,来抢沙发吧~