Kubernetes安装配置指南
-
- 5、Kubernetes集群的网络配置
- 6、内网中的Kubernetes相关配置
-
- [6.1、Docker Private Registry(私有Docker镜像库)](#6.1、Docker Private Registry(私有Docker镜像库))
- 6.2、kubelet配置
5、Kubernetes集群的网络配置
在多个Node组成的Kubernetes集群内,跨主机的容器间网络互通是Kubernetes集群能够正常工作的前提条件。Kubernetes本身并不会对跨主机的容器网络进行设置,这需要额外的工具来实现。除了谷歌公有云GCE平台提供的网络设置,一些开源的工具包括Flannel、Open vSwitch、Weave、Calico等都能够实现跨主机的容器间网络互通。随着CNI网络模型的逐渐成熟,Kubernetes将优先使用CNI网络插件打通跨主机的容器网络。具体的网络原理及主流开源网络工具的原理和配置详见第7章的说明。
6、内网中的Kubernetes相关配置
Kubernetes在能够访问Internet网络的环境中使用起来非常方便:一方面,在docker.io和gcr.io网站中已经存在了大量官方制作的Docker镜像;另一方面,GCE、AWS提供的云平台已经成熟,用户通过租用一定的空间来部署Kubernetes集群也很简便。
但是,许多企业内部由于安全原因无法访问Internet,需要通过创建一个内部的私有Docker Registry,并修改一些Kubernetes的配置,来启动内网中的Kubernetes集群。
6.1、Docker Private Registry(私有Docker镜像库)
使用Docker提供的Registry镜像创建一个私有镜像仓库。
详细的安装步骤请参考Docker的官方文档https://docs.docker.com/registry/deploying/。
6.2、kubelet配置
由于在Kubernetes中是以Pod而不是以Docker容器为管理单元的,在kubelet创建Pod时,还通过启动一个名为k8s.gcr.io/pause:3.1的镜像来实现Pod的概念。
该镜像存在于谷歌镜像库k8s.gcr.io中,需要通过一台能够连上Internet的服务器将其下载,导出文件,再push到私有Docker Registry中。
之后,可以给每个Node的kubelet服务都加上启动参数--pod-infra-container-image,指定为私有Docker Registry中pause镜像的地址。例如:
bash
# cat /etc/kubernetes/kubelet
KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig
--hostname-override=192.168.18.3--log-dir=/var/log/kubernetes --v=0
--pod-infra-container-image=myregistry/pause:3.1"
然后重启kubelet服务:
bash
# systemctl restart kubelet
通过以上设置就在内网环境中搭建了一个企业内部的私有容器云平台。