使用Kubeadm快速搭建Kubernetes(docker)

版本说明
kubernetes1.6
docker1.12.6
环境准备
192.168.0.51 master
192.168.0.52 minion1
192.168.0.53 minion2

安装docker

安装yum-utils 管理yum repository及扩展包的工具

yum install -y yum-utils

增加docker repository

yum-config-manager
--add-repo
https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo

下载包信息到本地

yum makecache fast

安装docker-1.12.6

yum install -y docker-engine-1.12.6

启动docker服务

systemctl start docker

开机启动docker

systemctl enable docker

系统配置
创建/etc/sysctl.d/k8s.conf文件,内容为:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

执行

sysctl -p /etc/sysctl.d/k8s.conf
在/etc/hostname中修改各节点的hostname,在/etc/hosts中设置hostname对应非lo回环网卡ip:

192.168.0.51 master
192.168.0.52 minion1
192.168.0.53 minion2

安装kubeadm和kubelet
安装kubeadm和kubelet需要技术*,或者通过以下两种方法
1、通过修改/etc/hosts文件添加IP *.google.com,比如

216.58.200.33 gcr.io
216.58.200.33 www.gcr.io
216.58.200.33 cloud.google.com
216.58.200.33 packages.cloud.google.com
216.58.200.33 console.cloud.google.com
216.58.200.33 status.cloud.google.com
216.58.200.33 ssh.cloud.google.com
2、或者使用此方法:

cat < /etc/yum.repos.d/kubernetes.repo
输入如下内容:

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

安装kubelet,kubeadm,kubectl

yum -y install socat kubelet-1.6.1 kubeadm-1.6.1 kubectl-1.6.1
systemctl enable kubelet.service

初始化集群
上面的步骤每个node都需要执行,此步骤只在Master Node 执行。选择192.168.0.51这台作为Master Node,在此机器上

kubeadm init --kubernetes-version=v1.6.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.0.51
选择flannel作为网络插件,所以上面的命令指定–pod-network-cidr=10.244.0.0/16。初始化遇到问题时,使用下面的命令清理然后再初始化:

kubeadm reset
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/

不出意外Master Node 已初始化成功。此时查看节点状态 kubectl get nodes 会报 The connection to the server localhost:8080 was refused - did you specify the right host or port? 我们查看kube-apiserver的监听端口

[root@kube-master ~]# netstat -nltp | grep apiserver
tcp6 0 0 :::6443 ::

上一篇:docker Kubernetes(k8s)部署


下一篇:c++虚继承与虚函数