kubeadm是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个kubernetes集群的部署
1、创建一个Master节点:
kubeadm init
2、将Node节点加入到Master集群中:
kubeadm join <Master节点的IP和端口>
- Kubernetes部署环境要求
- (1)一台或多台机器,操作系统CentOS 7.x-86_x64
(2)硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+
(3)集群内各个机器之间能相互通信
(4)集群内各个机器可以访问外网,需要拉取镜像
(5)禁止swap分区
- Kubernetes部署环境要求
- 关闭防火墙
systemctl stop firewalld systemctl disable firewalld
关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久 setenforce 0 #临时
关闭swap(k8s禁止虚拟内存以提高性能)
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久 swapoff -a #临时
在master添加hosts(node不需要添加)
cat >> /etc/hosts << EOF 192.168.172.134 k8smaster 192.168.172.135 k8snode EOF
设置网桥参数
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system #生效
时间同步(centos8以上是另一种方式)
yum install ntpdate -y ntpdate time.windows.com
- Kubernetes安装具体步骤
- Kubernetes 默认容器运行环境是Docker,因此首先需要安装Docker
更新docker的yum源wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
安装指定版本的docker
yum install docker-ce-19.03.13 -y
配置加速器加速下载
/etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] } https://gg3gwnry.mirror.aliyuncs.com systemctl enable docker.service # 一定要执行,不然kubeadm init的时候会报错 systemctl start docker.service
添加k8s的阿里云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 和 kubectl
yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y systemctl enable kubelet.service systemctl start kubelet.service
部署Kubernetes Master主节点
kubeadm init --apiserver-advertise-address=${master节点IP} --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 # --service-cidr=10.96.0.0/12(集群地址) --pod-network-cidr=10.244.0.0/16(pod地址)
在master机器上执行(kubeadm init成功后,配置和节点加入会有提示)
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
向集群添加新节点,执行的命令就是kubeadm init最后输出的kubeadm join命令
# 在节点中执行 kubeadm join ${master节点IP}:6443 --token wa5bif.zfuvbesevdfvf4of \ --discovery-token-ca-cert-hash sha256:87cf5828d54dd80da13c4b57c57360370ea0267a7cc3991989ca3006cf3e44d8
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
应用kube-flannel.yml文件得到运行时容器
kubectl apply -f kube-flannel.yml # 在master机器上执行