通过kubeadm在线安装k8s集群
k8s集群搭建
环境准备:
3台虚拟机
192.168.101.201 k8s-master01 主节点
192.168.101.202 k8s-node01 从节点
192.168.101.203 k8s-node02 从节点
1、先在主机点修改/etc/hosts文件
cat >> /etc/hosts << EOF
192.168.101.201 k8s-master01
192.168.101.202 k8s-node01
192.168.101.203 k8s-node02
EOF
并scp到2个从节点上 scp /etc/hosts root@从节点IP:/etc/hosts
2、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=diabled/g’ /etc/selinux/conf
3、关闭swap
swapoff -a
4、将桥接的 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
5、时间同步通过ntp(此处不说明)
6、docker安装
(1)yum install -y yum-utils device-mapper-persistent-data lvm2
(2)设置Docker yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(3)查看所有仓库中所有docker版本
可以查看所有仓库中所有docker版本,并选择特定的版本安装
yum list docker-ce --showduplicates | sort -r
(4)安装docker
yum install docker-ce
由于repo中默认只开启stable仓库,故这里安装的是最新稳18.03.0.ce-1.el7.centos。
如果要安装特定版本:
yum install docker-ce-18.06.1.ce
(5)启动
systemctl enable docker
systemctl start docker
(6)查看启动状态
systemctl status docker
7、kubeadm、kubelet、kubectl 的安装
(1)添加repo源
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)安装组件
#下载软件
yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
#开机自启动
systemctl enable kubelet
此处指定版本为 1.17.0,如果不指定默认下载最新版本
8、在 Master 节点中部署集群
在 master 节点中执行以下命令,注意将 master 节点 IP 和 kube 版本号修改为自己主机中所对应的。
kubeadm init \
--apiserver-advertise-address=192.168.101.201 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
9、此步骤执行完成之后,使用命令docker images查看系统中的镜像,可以我们需要的镜像均已安装完成。
查看提示信息,看到 initialized successfully 说明我们 master 节点上的 k8s 集群已经搭建成功;
10. 将 node 节点加入集群
查看上一步执行成功后的提示信息,可以看到系统给了我们两条命令;
这两条命令分别表示:
① 开启 kubectl 工具的使用(该命令在master节点中执行)。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
② 将 node 节点加入 master 中的集群(该命令在工作节点node中执行)。
kubeadm join 192.168.101.201:6443 --token ffxqf6.u91sy2te7r3q9ouj --discovery-token-ca-cert-hash sha256:c6f9b0823e1043c30f61be32a2da8a8f3aa286bccc72c43124574cabba7fccd3
注意:若此条命令忘记,或者已过期,可以在master节点上执行:
kubeadm token create --print-join-command
分别在 master 节点中执行第 ① 条命令,在各个 node 节点中执行第 ② 条命令;
执行完成之后在 master 节点中使用命令 kubectl get nodes 查看此时集群中的工作节点。可以看到,node1 和 node2 工作节点已加入至 master 中的集群。
节点ready部分后续补充
问题处理:
若在从节点执行kubeadm join命令时,出现如下图的报错
解决方法如下:有问题的Node节点下找到kubeadm.conf配置文件
find /* -name '*kubeadm.conf'
进入此目录,在最后一行添加
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false"
然后
systemctl daemon-reload
systemctl restart kubelet
kubeadm reset -f
此时再执行之前的kubeadm join 命令即可将node成功添加入集群中。
文中内容参考:
【云原生 • Kubernetes】搭建 k8s 集群(Kubeadm 方式)_Developer 小马的博客-CSDN博客_k8s集群规划
更多推荐
所有评论(0)