kubeadm是官方社区推出的快速部署kubernetes集群的工具

安装要求

(1)一台或多台CentOS7.x-86_x64操作系统
(2)硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
(3)集群中所有机器之间网络互通,可以访问外网,需要拉取镜像

准备环境

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
#关闭swap
swapoff -a 临时
#添加主机名与IP对应关系(记得设置主机名)
vi /etc/hosts
192.168.136.129 k8s-master
192.168.136.128 k8s-node1
192.168.136.130 k8s-node2
#将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#使配置生效
sysctl --system

安装docker

#更新yum
yum update
#安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker
yum install docker-ce-17.12.1.ce -y
#设置开机自启,启动docker
systemctl enable docker && systemctl start docker

添加阿里云yum软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装kubeadm、kubelet和kebectl

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
systemctl enable kubelet

部署kubernetes master

#在master执行初始化
kubeadm init \
--apiserver-advertise-address=192.168.136.129 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

使用kubectl工具

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#查看节点
kubectl get nodes

安装pod网络插件CNI

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

将node加入集群

kubeadm join 192.168.136.129:6443 --token 1w09k0.ugs74mxzljn7yk72 \
--discovery-token-ca-cert-hash sha256:cac0b9e628461383dde738b184111c6b735b2010a6eb637b1a9b7ffc297a7537

查看集群状态

#当节点都是Ready状态,表示集群初始化成功
kubectl get nodes
#查看kube-system名称空间pod状态,全部运行为成功
kubectl get pods -n kube-system