k8s网络-以Flannel为例

k8s网络模型假定了所有的pod都在一个可以直接连通的网络空间中,k8s假定这个网络已经存在。但是如果自己在私有云搭建k8s集群的话,就必须要自己实现了。
在这里插入图片描述

1.同一个pod之间的多个容器:lo

共用了同一个网卡,可以直接访问

2.各pod之间的通讯:overlay network

常用的网络方案:
Flannel,它能让所有的容器在集群中拥有一个唯一的虚拟ip地址。他能够在这些ip之间建立一个覆盖网络,通过这个覆盖网络,将数据包原封不动的传递到目标容器内。

1)同一主机(不同pod)
app1到app2直接通过docker0网卡转发请求

2)不在同一主机
从 app1到Backend的一次通信过程
首先构建一个数据包,源地址为10.1.12.2 目的地址10.1.20.3
然后交给docker0,再由docker0提交给Flannel0,然后再到Flanneld。
Flanneld再对数据包进行封装

mac层
outer ip 层 source 192.168.66.11 destination:192.168.66.12
udp //Flanneld转发报文的方式是udp
inner ip 层 source 10.1.12.2 destination:10.1.20.3

而这个目的地址192.168.66.12,是根据存储再etcd中的路由表查找到的。
传送到192.168.66.12,再由其交给Flanneld,在进行拆分,交给Docker0,docker0根据内部ip信息,交给backend。

3.pod与service通信:各节点的Iptables规则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,以下是使用kubeadm部署Kubernetes 1.27.4的步骤: 1. 确认k8s版本和环境:首先,确认您要部署的Kubernetes版本为1.27.4,并确保您的环境满足部署要求,例如操作系统版本、CPU和内存等。 2. 创建配置文件:根据您的需求,创建Kubernetes集群的配置文件,包括证书、网络插件、镜像源等。您可以根据实际情况进行配置。 3. 安装kubeadm:在两台Ubuntu 16.04 64位双核CPU虚拟机上安装kubeadm。您可以使用以下命令安装kubeadm: ```shell sudo apt-get update sudo apt-get install -y kubeadm ``` 4. 初始化Master节点:在其中一台虚拟机上执行以下命令初始化Master节点: ```shell sudo kubeadm init --kubernetes-version=1.27.4 ``` 该命令将会初始化Kubernetes Master节点,并生成一个加入集群的命令。 5. 部署网络插件:根据您的配置文件选择网络插件,这里以flannel为例。在Master节点上执行以下命令部署flannel网络插件: ```shell kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 6. 加入Worker节点:在另一台虚拟机上执行Master节点生成的加入集群的命令,将其加入到Kubernetes集群中: ```shell sudo kubeadm join <Master节点IP>:<Master节点端口> --token <Token值> --discovery-token-ca-cert-hash <证书哈希值> ``` 请将`<Master节点IP>`、`<Master节点端口>`、`<Token值>`和`<证书哈希值>`替换为实际的值。 至此,您已成功使用kubeadm部署了Kubernetes 1.27.4集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值