一、部署版本

(1)docker 19.03.13
(2)kubernetes 1.19.4

二、部署流程

(1)k8s部署环境准备
(2)安装docker
(3)安装kubeadm,kubelet 和 kubectl
(4)部署Kubernetes master和node节点

三、部署环境要求

(1)一台或多台机器(建议初步两台),操作系统CentOS 7.x-86_x64
(2)硬件配置:内存2GB或以上,CPU 2核或以上;
(3)集群内各个机器之间能相互通信;
(4)集群内各个机器可以访问外网,需要拉取镜像(非必须大不了手动安装);
(5)禁止swap分区;

四、部署环境准备

我准备了两台虚拟机:
192.168.153.128 准备做master节点
192.168.153.129 准备做node节点
两台都执行以下命令:
(1)关闭防火墙和selinux

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久

setenforce 0  #临时

(2)关闭swap分区(k8s禁止虚拟内存以提高性能)

sed -ri 's/.*swap.*/#&/' /etc/fstab #永久

swapoff -a #临时

(3)添加主机名映射关系

echo '''
192.168.153.128 k8s-master-128
192.168.153.129 k8s-node-129
''' >> /etc/hosts

(4)设置网桥参数

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

两台都需要执行
(1)更新docker的yum源

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

(2)安装指定版本的docker

yum install docker-ce-19.03.13 -y

(3)docker启动和设置开机自启动

systemctl start docker

systemctl enable docker

(4)配置加速器加速下载

vim /etc/docker/daemon.json
# 修改为如下
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

(5)重启docker

systemctl restart docker

六、安装kubeadm,kubelet 和 kubectl

Kubelet:运行在cluster所有节点上,负责启动POD和容器;
Kubeadm:用于初始化cluster的一个工具;
Kubectl:kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件;
两台都需要执行
(1)添加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

(2)安装 kubeadm,kubelet 和 kubectl

yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y

(3)kubelet 启动和设置开机自启

systemctl start kubelet

systemctl enable kubelet

七、部署Kubernetes master和node节点

(1)部署master节点(在master机器上执行)

kubeadm init --apiserver-advertise-address=192.168.153.128 --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 的选取不能和pod-network-cidr 及本机网络有重叠或者冲突,一般可以选择一个本机网络和pod-network-cidr都没有用到的私网地址段,比如pod-network-cidr使用10.244.0.0/16, 那么service-cidr可以选择10.96.0.0/12,网络无重叠冲突即可;

成功执行后会显示一串命令用于node加入,保存一下
在这里插入图片描述

(2)成功后执行以下命令(在master机器上执行)

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

(3)部署node节点,把node节点加入Kubernetes master中(在node机器上执行)
执行的命令就是kubeadm init最后输出的kubeadm join命令:

kubeadm join 192.168.153.128:6443 --token bc7b6i.zfnziwgssx055q24    --discovery-token-ca-cert-hash sha256:7383608ccb5e16c5f85e55dd667fbb2adaabb08c8d6155d13fb2cf1999a0a211

(4)可以查看下节点信息(在master机器上执行)

kubectl get nodes

如下:
在这里插入图片描述
(5)部署网络插件,节点之间通信(在master机器上执行)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

下载不下来的话就从这里拿吧:
链接:https://pan.baidu.com/s/15v6bV8S5EEU3P1PoFrIXvw
提取码:75ru
(6)应用kube-flannel.yml文件得到运行时容器(在master机器上执行)

kubectl apply -f kube-flannel.yml

(7)稍等一会在master上使用kubectl get nodes命令都是ready状态即成功
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐