Kubernetes安装中的CIDR地址和广告地址定义

时间:2018-03-19 14:05:50

标签: kubernetes

我正在尝试在我的内部部署服务器Ubuntu 16.04上安装Kubernetes。并参考以下文档,

https://medium.com/@Grigorkh/install-kubernetes-on-ubuntu-1ac2ef522a36

安装kubelete kubeadm和kubernetes-cni后,我发现用以下命令启动kubeadm,

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.133.15.28 --kubernetes-version stable-1.8

在这里,我完全混淆了为什么我们设置cidr和api服务器的广告地址。我在这里添加了一些来自Kubernetes的混淆,

  1. 为什么我们在这里指定CIDR和--apiserver-advertise-address?
  2. 我如何为我的服务器找到这两个地址?
  3. 为什么法兰绒在Kubernetes安装中使用?
  4. 我是这个集装箱化和Kubernetes世界的新手。

1 个答案:

答案 0 :(得分:1)

  

为什么我们在这里指定CIDR和--apiserver-advertise-address?

     

为什么法兰绒在kubernetes安装中使用?

Kubernetes使用Container Network Interface在群集内创建特殊的虚拟网络,以便在pod之间进行通信。

以下是一些解释"为什么"来自documentation

  

Kubernetes对任何网络实施都施加了以下基本要求(除非有任何有意的网络分段政策):

     
      
  • 所有容器都可以与没有NAT的所有其他容器通信
  •   
  • 所有节点都可以与所有容器通信(反之亦然),无需NAT
  •   
  • 容器看到的IP与其他人看到的IP相同
  •   
     

Kubernetes在Pod范围应用IP地址 - Pod中的容器共享其网络命名空间 - 包括其IP地址。这意味着Pod中的容器都可以在localhost上到达彼此的端口。这确实意味着Pod中的容器必须协调端口使用,但这与VM中的进程没有什么不同。这被称为“IP-per-pod”模型。

因此,Flannel是可用于创建网络的CNI之一,它将连接所有pod和CIDR选项,为该网络定义子网。有许多具有类似功能的替代CNI。

如果您想了解有关如何在Kubernetes中使用网络的更多详细信息,您可以通过以上链接阅读,例如here

  

如何为我的服务器找到这两个地址?

API服务器广告地址必须只有一个且是静态的。该地址使用所有组件与API服务器通信。不幸的是,Kubernetes不支持每个主服务器的多个API服务器地址。

但是,您仍然可以根据需要在服务器上使用尽可能多的地址,但只能将其中一个地址定义为--apiserver-advertise-address。唯一的请求 - 它必须可以从群集中的所有节点访问。