centos7下kubeadm安装Kubernetes 1.20完整版
一、Kubernetes简介Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K..
一、Kubernetes简介
Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。
K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K8S集群管理,集群中各节点间的信息交互、任务调度,还负责容器、Pod、NameSpaces、PV等生命周期的管理。工作节点主要为容器和Pod提供计算资源,Pod及容器全部运行在工作节点上,工作节点通过kubelet服务与管理节点通信以管理容器的生命周期,并与集群其他节点进行通信。
提示:master并且开启面密钥登陆
ssh-keygen -t rsa
ssh-copy-id root@192.168.3.71
ssh-copy-id root@192.168.3.72
二、安装环境配置(下步骤在所有主机上都需执行)
1.在安装之前,需要先做如下准备。三台CentOS 7主机如下(具体多少可以自己定,至少2台以上):
在各自主机上设置主机名
192.168.3.70
hostnamectl set-hostname master
2.编辑 /etc/hosts 文件,添加域名解析。
cat <<EOF >>/etc/hosts
192.168.3.70 master
192.168.3.71 node1
192.168.3.72 node2
EOF
3.关闭防火墙、selinux和swap。
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
4.第一次安装打开路由转发功能,很多文档上没有写,但是我安装的时候确实报错了
echo "1" > /proc/sys/net/ipv4/ip_forward
5.配置内核参数,将桥接的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
6.配置国内yum源
yum install -y wget
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache
配置国内Kubernetes源
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
epo_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
配置 docker 源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
三、开始安装docker、kubeadm、kubectl、kubelet
1.安装docker
yum install -y docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker version
#修改docker配置
cat > /etc/docker/daemon.json << EOF
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
2.安装kubeadm、kubelet、kubectl
yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0
systemctl enable kubelet
四、master部署
提示:在master节点执行
1.在master进行Kubernetes集群初始化。
kubeadm init --kubernetes-version=1.20.0 --apiserver-advertise-address=192.168.3.70 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=Swap
apiserver-advertise-address=192.168.3.70(master机地址)
最后会生成token如下
kubeadm join 192.168.3.70:6443 --token kekvgu.nw1n76h84f4camj6 \
--discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e
2.配置kubectl工具
系统由admin.conf文件启动kubernetes,如果不配置会起不来
mkdir -p /root/.kube
cp /etc/kubernetes/admin.conf /root/.kube/config
kubectl get nodes #查看所有集群内的节点,此时都还是notread状态,因为还没部署flannel网络
3.部署flannel网络
注意:flannel镜像好像下不到,自己在阿里云搜索可下载镜像替换yaml文件里的镜像即可
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
五、node节点部署
将我们在master上生成的token那段直接在各node执行
注意:需要使用swap分区也需要添加–ignore-preflight-errors=Swap
kubeadm join 192.168.3.70:6443 --token kekvgu.nw1n76h84f4camj6 \
--discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e
此时,集群部署就完成了,可以在master上获取nodes的状态
kubectl get nodes -o wide
为read说明部署成功。
更多推荐
所有评论(0)