在CentOS7上部署Kubernetes v1.10.6

1、关闭所有节点的SELinux

永久方法 – 需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

临时方法 – 设置系统参数

使用命令setenforce 0

附: setenforce 1 设置SELinux 成为enforcing模式 setenforce 0 设置SELinux 成为permissive模式

2、关闭所有节点的SWAP

编辑配置文件/etc/sysctl.conf 

vm.swappiness = 0

刷新SWAP

swapoff -a 
#刷新配置
sysctl -p

3、下载Github官方release版本

wget https://github.com/kubernetes/kubernetes/releases/download/v1.10.6/kubernetes.tar.gz

4、解压安装文件

官方手册

Kubernetes 发行版包括所有的 Kubernetes 二进制文件以及受支持的 etcd 发行版。 您可以使用 Kubernetes 的发行版(推荐)或按照 开发人员文档 中的说明构建您的 Kubernetes 二进制文件。本指南仅涉及使用 Kubernetes 发行版。

下载并解压 最新的发行版。服务器二进制 tar 包不再包含在 Kubernetes 的最终 tar 包中,因此您需要找到并运行 ./kubernetes/cluster/get-kube-binaries.sh 来下载客户端和服务器的二进制文件。 然后找到 ./kubernetes/server/kubernetes-server-linux-amd64.tar.gz 并解压缩。接着在被解压开的目录 ./kubernetes/server/bin 中找到所有必要的二进制文件。

可以把下载解压的./kubernetes/server/bin添加到PATH变量中,同时配置两个环境变量 KUBERNETES_SERVICE_HOST 和KUBERNETES_SERVICE_PORT,方便使用。

5、构建私有镜像

您将在容器之外运行 docker,kubelet 和 kube-proxy,与运行系统守护进程的方式相同,这些程序需要单独的二进制文件。对于 etcd,kube-apiserver,kube-controller-manager 和 kube-scheduler,我们建议您将其作为容器运行,因此需要构建相应的镜像。

您将在容器之外运行 docker,kubelet 和 kube-proxy,与运行系统守护进程的方式相同,这些程序需要单独的二进制文件。对于 etcd,kube-apiserver,kube-controller-manager 和 kube-scheduler,我们建议您将其作为容器运行,因此需要构建相应的镜像。

#查看./kubernetes/server/bin中的tar文件
ls *.tar
#显示
cloud-controller-manager.tar  kube-aggregator.tar  kube-apiserver.tar  kube-controller-manager.tar  kube-proxy.tar  kube-scheduler.tar
#构建镜像
docker load -i cloud-controller-manager.tar
docker load -i kube-aggregator.tar 
docker load -i kube-apiserver.tar 
docker load -i kube-controller-manager.tar
docker load -i kube-proxy.tar
docker load -i kube-scheduler.tar
#查看构建的私有镜像
docker images

kubeadm:引导群集的命令。

kubelet:在群集中的所有计算机上运行的组件,用于启动pod和容器。

kubectl:与您的集群通信的命令行工具。

6、建立etcd

官方建议

  • 构建自己的镜像
    • 执行:cd kubernetes/cluster/images/etcd; make

我们建议您使用 Kubernetes 发行版中提供的 etcd。Kubernetes 程序已经使用此版本的 etcd 进行了广泛的测试,而不是与任何其他版本的 etcd。推荐的版本号也可以在 kubernetes/cluster/images/etcd/Makefile 中作为 TAG 的值被找到。

该文档的剩余部分假定镜像标签已被选定并存储在相应的环境变量中。例子(替换最新的标签和适当的仓库源):

  • HYPERKUBE_IMAGE=gcr.io/google_containers/hyperkube:$TAG
  • ETCD_IMAGE=gcr.io/google_containers/etcd:$ETCD_VERSION

7、每个node节点,安装kubernetes-node-linux-amd64.tar.gz

#解压
tar xzvf kubernetes-node-linux-amd64.tar.gz
#配置bin目录到~/.bashrc
vim ~/.bashrc
export PATH=$PATH:/opt/kubernetes/node/bin
#重新加载配置
source ~/.bashrc

官方建议

您应该在每个节点上运行三个守护进程:

  • docker 或者 rkt
  • kubelet
  • kube-proxy

您还需要在安装操作系统后进行各种其他配置。

提示:比较可行的方法是先使用现有的入门指南来设置集群。在集群运行后,您可以从该集群复制 init.d 脚本或 systemd 单元文件,然后修改它们以便在您的自定义集群上使用。

8、每个node节点,安装docker

docker安装参考

systemctl enable docker && systemctl start docker

官方建议 

如果你之前安装Docker的节点没有Kubernetes相关的配置,你可能已经有Docker新建的网桥和iptables的规则。所以你或许希望在为Kubernetes配置Docker前根据以下命令移除之前的配置。

iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0

猜你喜欢

转载自blog.csdn.net/fishinhouse/article/details/81362262