通过kubeadm在线安装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集群规划

Node节点join提示healthz错误问题_mayi_xiaochuan的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值