网站建设基础策划书,电脑版淘宝网页,杭州棋牌软件开发公司,河北建设秦皇岛分公司kube-prxoy属于节点组件#xff0c;网络代理#xff0c;实现服务的自动发现和负载均衡。 k8s的内部网络模式
1、pod内的容器于容器之间的通信。
2、一个节点上的pod之间的通信#xff0c;docker0网桥直接通信。
3、不同节点上的pod之间的通信#xff1a;
通过物理网卡的…kube-prxoy属于节点组件网络代理实现服务的自动发现和负载均衡。 k8s的内部网络模式
1、pod内的容器于容器之间的通信。
2、一个节点上的pod之间的通信docker0网桥直接通信。
3、不同节点上的pod之间的通信
通过物理网卡的ip地址和其他节点上的物理网卡的设备进行通信然后把流量转发到指定的pod内。
CNI作用1、给每个pod提供一个全局的ip地址。 2、cni是一个标准接口用于容器运行时调用网络插件配置容器的网络。
设置容器的网络命令空间IP地址路由等等参数。 CNI的插件类型
CNI的插件可以让在集群内不同节点上创建的pod都拥有全局内唯一的IP地址。 flannel插件
是一种overlay网络模式tcp数据包封装在另一种网络里面进行路由转发的模式。在二层的基础上创建一个逻辑上的网络层可以实现跨节点的容器通信。
工作模式udp模式基于应用层转发性能最差。 vxlan模式基于内核转发最常用的方式。 host-gw性能最好但是配置麻烦。
vxlan模式的工作原理 1、数据帧从主机A上的POD1出发进行二次封装源IP和目的IPflannel会通过apiserver保存一张路由表到etcd。
2、从pod1出发的数据包经过docker0/cni0网络接口转到flannel.1接口vxlan模式的默认接口
3、flannel.1接口收到数据后添加vxlan头部封装在udp报文中。
4、主机A的网卡收到flannel.1接口的数据包封装主机A的IP和主机B的IP。
5、数据包到达主机Bvxlan默认接口8472主机B收到数据包之后解包传送到8472端口就是flannel.1接口然后再解包把数据转发到指定的pod。
UDP网络flannel.0vxlanflannel.1 calico插件
把主机作为路由器使用BGPBGP动态路由自动实现路由选择同步路由的方式转发数据包。
calico的组成部分
1、felix维护宿主机上的路由规则以及FIB库转发信息库。
2、BIRD分发路由规则
3、confd配置管理组件
转发原理 1、为每一个容器设置一个veth pair的设备。相当于桥接的功能veth pair的一端接入宿主机的网络空间另一端配置一个路由规则接入容器docker0/cni0。
路由传播
1、Felix在节点上添加pod的IP地址添加pod的子网路由。
2、BIRD在集群内节点上建立BGP的会话广播本机的路由节点。
3、集群内的节点学习整个路由如何能够到达其他节点的pod的吓一跳的地址。
4、宿主机直接把数据包发送到目标主机通过veth pair设备直接转发到目标pod。 k8s基本操作命令 查看k8s版本 查看api资源对象 查看证书api有效期时间 查看集群中组件的状态-cs 查看集群节点的状态-get 查看默认命名空间里pod的状态 查看pod的详细状态-wide 查看资源的详细信息-describe 查看pod与本机端口映射-svc 查看当前集群的命名空间 指定命名空间-n 创建命名空间 创建pod-create 基于deployment控制器创建pod控制器的名称是nginx1pod使用的镜像nginx:1.22--replicas3pod的数量有多少 3个 pod端口映射-expose expose暴露出来的是service的类型可以供内网访问的一个方式。--port80集群对外服务的端口NodePort宿主机的随机端口 target-port80集群里面容器暴露的端口 删除pod-delete 基于控制器创建的pod删除pod相当于重启不能把pod完全销毁。
基于控制器创建的pod删除pod副本需要删除相应的控制器 查看pod日志-logs 进入pod内的容器-exec pod数量的扩缩容-scale
1、命令行改kubectl scale deployment nginx --replicas1 2、改yaml配置文件-edit 3、自动扩缩容HPA根据cpu的负载自动扩缩容 直接创建pod-run 没有通过控制器创建的pod可以直接删除-kubectl delete pod zw1