kubernetes的访问方式(10)
2021-03-28 10:27
标签:作用 tps ber 抽象 port 关联 简单 自己 节点 yaml文件我已经放到了百度网盘 然后倒入镜像 docker tag 452a96d81c30 gcr.io/google_containers/defaultbackend 然后解压tar包,里面就是yaml问题件 1、首先我们介绍下hostNetwork这种访问方式: kubectl create -f nginx.yaml 2、接下来介绍hostPort zhezhong这种模式 kubectl create -f nginx-hostport.yaml 3、接下来创建NodePort 这种也比较简单 创建2个yaml kubectl expose deployment nginx --port=8080 --target-port=80 --type=NodePort --dry-run -o yaml > svc.yaml 启动一下 4、接下来我们介绍比较特殊的一种访问方式LoadBalancer 先简答的介绍一下 MetalLB旨在解决这种不平衡 wget https://raw.githubusercontent.com/google/metallb/v0.7.3/manifests/example-layer2-config.yaml 创建一下 创建后端应用和服务测试 5、上面介绍了LoadBalancer接下来介绍另外的一种比较流行的方式 Ingress 开始创建一下 接下来创建ingress 接下来访问一下 接下来还要配置一个错误的网页 6、接下来开始最后一种模式ClusterIP 比如 然后创建一下 ----================================================ kubernetes的访问方式(10) 标签:作用 tps ber 抽象 port 关联 简单 自己 节点 原文地址:https://blog.51cto.com/xiaorenwutest/2484251
最常见的是就比如我们通过service
查看到的,
接下来我们会创建不同的访问方式,给大家演示效果
hostNetwork、hostPort、NodePort、LoadBalancer、Ingress、clusterip
一共包括6中通信方式,其中clusterip是不对外开放的,只是集群内部使用
解压可以使用
链接:https://pan.baidu.com/s/1YNnNZamlW325x5spVjw4Ig
提取码:wbtg
docker load
然后创建一下
去node1上面查看一下
访问测试一下
这里只能node1可以访问,其他node节点访问是不行的
修改一下副本数量验证一下
kubectl edit deployment nginx
这次其他node节点也就可以,每个节点都有部署的pod
创建一下
kubectl create deployment nginx --image=nginx --dry-run -o yaml > nginx.yaml
访问一下
这种方式,所有的nodeip+端口都可以访问
metallb简介
官方网站:https://metallb.universe.tf/
MetalLB是使用标准路由协议的裸机Kubernetes集群的软负载均衡器
【备注】私有云裸金属架构的kubernetes集群不支持LoadBalance
如果你的kubernetes集群没有在公有云的IaaS平台(GCP,AWS,Azure …)上运行,则LoadBalancers将在创建时无限期地保持“挂起”状态,也就是说只有公有云厂商自家的kubernetes支持LoadBalancer。
MetalLB旨在通过提供与标准网络设备集成的网络LB实现来纠正这种不平衡,以便裸机集群上的外部服务也“尽可能”地工作。即MetalLB能够帮助你在kubernetes中创建LoadBalancer类型的kubernetes服务
接下来我们部署一下:
wget https://raw.githubusercontent.com/google/metallb/v0.7.3/manifests/metallb.yaml
修改ip地址池和集群节点网段相同
注意:【这里的 IP 地址范围需要跟集群实际情况相对应】
接下来测试一下
我的机器应为是腾讯云机器自己创建的所以这个ip不能直接那到外网使用,只能通过公网访问,刚才curl其实已经验证了。
Ingress,这种是当前比较流行的方式
简单介绍一下
一个负载均衡的玩意,其主要用来解决使用NodePort暴露Service的端口时Node IP会漂移的问题。同时,若大量使用NodePort暴露主机端口,管理会非常混乱
Ingress就可以解决上面的问题,其包含两个组件Ingress Controller和Ingress:
将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的Ingress的yaml文件即可
Ingress Controller
将新加入的Ingress转化成Nginx的配置文件并使之生效
这里需要注意,ingress如何和pod关联,是通过svc上面的地址和端口关联的哈
在本地配置了hosts,或者要有dns
default-backend的作用是,如果外界访问的域名不存在的话,则默认转发到default-http-backend这个Service,其会直接返回404
这种模式主要是整个k8s集群内部使用,不对外开放的,比如我们启动一个nginx想要对外访问需要nodeport这类的的转发,但是没有转发的时候是无法访问的,只能在集群内部使用
好了今天这6中方式就介绍到这里,后续有问题,欢迎大家私信联系
上一篇:HTML面试题汇总(持续更新)
下一篇:zabbix配置https访问
文章标题:kubernetes的访问方式(10)
文章链接:http://soscw.com/index.php/essay/69009.html