离线搭建K8s1.21.2集群


 

一、    准备材料

离线安装包:k8s-install.zip

网盘:https://cloud.189.cn/t/z2Y7Nf7RZfau (访问码:3jfk)

二、    环境规划

操作系统

IP

CPU/MEM

主机名

角色

CentOS 7.7-x86_64

192.168.110.100

2/4G

K8s-master

master

CentOS 7.7-x86_64

192.168.110.111

2/4G

K8s-node1

work node

 

【版本号】

name

version

Docker

19.03.12

kubeadm

1.21.2

kubernetes

1.21.2

三、    CenOS7.x部署

3.1 部署master节点

3.1.1 一键部署

# 解压k8s-install.zip包,进入解压后的文件夹

[root@hadoop100 k8s-install]# pwd

/usr/local/java/software/k8s-install

[root@hadoop100 k8s-install]# ls

dashboard-ui  docker-ce-19.03.12.tar.gz  flannel-v0.14.0.tar  install.sh  k8s1202-images.tar.gz  k8s1202-rpm.tar.gz  kube-flannel-v0.14.1.yml  packages.tar.gz

# 给脚本赋权限

[root@hadoop100 k8s-install]# chmod +x install.sh

[root@hadoop100 k8s-install]# ls

dashboard-ui  docker-ce-19.03.12.tar.gz  flannel-v0.14.0.tar  install.sh  k8s1202-images.tar.gz  k8s1202-rpm.tar.gz  kube-flannel-v0.14.1.yml  packages.tar.gz

# 执行脚本 k8s-master:修改的新hostname

[root@hadoop100 k8s-install]# ./install.sh k8s-master

 

# 等待脚本自动安装,出现如下提示则安装完成,重启服务器

 

# 重启后hostname为之前的参数k8s-master

 

# 该操作会升级系统内核,重启前内核

 

 

 

# 重启后内核

 

 

 

3.1.2 使用 kubeadm 初始化集群

# 初始化集群

[root@k8s-master ~]# kubeadm init --kubernetes-version=v1.21.2 --apiserver-advertise-address=192.168.110.100 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

 

# 出现如下则集群初始化完成

 

 

 

# 执行提示命令

[root@k8s-master ~]# mkdir -p $HOME/.kube

[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

# 将join命令记录下来,这是将node节点加入到集群的执行操作命令:

kubeadm join 192.168.110.100:6443 --token tmfusx.gznjcc8hik1mbzz8 \

       --discovery-token-ca-cert-hash sha256:83fe7f7f321d246884814209587ad91cfcd31c6f44607bd101233e4f78882d14

 

# 使用 kubectl 查看 nodes

[root@k8s-master ~]# kubectl get nodes

 

 

 

当前状态Notready,是因为网络插件flannel还没有部署

3.1.3 初始化网络插件 flannel

#加载镜像(所有节点都加载)

[root@k8s-master ~]# docker load < flannel-v0.14.0.tar

#初始化(只在master)

[root@k8s-master ~]# kubectl apply -f kube-flannel-v0.14.1.yml

#使用 kubectl 查看 nodes

[root@k8s-master k8s-install]# kubectl get nodes

 

 

 

至此,master操作完成

3.2 部署node节点

3.2.1 一键部署

# 同master节点一样的操作

[root@hadoop100 k8s-install]# pwd

/usr/local/java/software/k8s-install

[root@hadoop100 k8s-install]# ls

dashboard-ui  docker-ce-19.03.12.tar.gz  flannel-v0.14.0.tar  install.sh  k8s1202-images.tar.gz  k8s1202-rpm.tar.gz  kube-flannel-v0.14.1.yml  packages.tar.gz

 

 

 

#部署成功后重启机器

3.2.2 加入集群

# 执行master步骤初始化集群后记录的命令,如下:

kubeadm join 192.168.110.100:6443 --token tmfusx.gznjcc8hik1mbzz8 \

       --discovery-token-ca-cert-hash sha256:83fe7f7f321d246884814209587ad91cfcd31c6f44607bd101233e4f78882d14

# 出现如下结果即加入成功

 

 

 

# 去master查看集群节点信息

 

 

 

# 可以看到k8s-node1已经加入集群,如果STATUS状态为NotReady,如下图,就多等一会,可能是加入未完成

 

 

 

3.2.3 复制admin.conf文件

# 使用scp命令将maser的“/etc/kubernetes/admin.conf”复制到node节点

# k8s-master执行:

[root@k8s-master ~]# scp /etc/kubernetes/admin.conf @192.168.110.111://etc/kubernetes/

# k8s-node1执行:

[root@k8s-node1 ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

[root@k8s-node1 ~]# source ~/.bash_profile

# 现在可以在k8s-node1节点使用kubectl命令了

 

 

 

 

注:该步骤是为了解决node节点不能使用kubectl命令

 

3.3 部署其他node节点

重复3.2的部署即可

 

3.4 部署完成

到此,通过 kubeadm 搭建 k8s 环境已经完成。

 

四、    k8s可视化(dashboard)部署

4.1 准备文件

dashboard-ui目录下

 

4.2 加载ui镜像

[root@k8s-master images]#cd /usr/local/java/software/k8s-install/dashboard-ui/images

[root@k8s-master images]# docker load < kubernetesui-dashboard.tar

[root@k8s-master images]# docker load < kubernetesui-metrics-scraper.tar

 

 

 

# docker image命令查看镜像导入是否正常:

 

 

 

 

扩展:

保存镜像到本地:docker save -o kubernetesui-dashboard.tar kubernetesui/dashboard: v2.0.0-rc5

kubernetesui-dashboard.tar:保存本地的镜像包名

kubernetesui/dashboard: v2.0.0-rc5:服务器里的镜像

 

4.3 执行配置文件

[root@k8s-master dashboard-ui]# pwd

/usr/local/java/software/k8s-install/dashboard-ui

[root@k8s-master dashboard-ui]# ls

dashboard-svc-account.yaml  dashboard.yml  images

[root@k8s-master dashboard-ui]# kubectl apply -f dashboard.yml

 

 

 

扩展:

如果要删除该配置文件可以执行如下命令:kubectl delete-f dashboard.yml

 

# 检查配置文件提供的pod是否正常执行

# 检查service资源是否正常映射了我们指定的端口32001(配置文件里指定的)

 

 

 

4.4 创建角色及赋权

# 想要访问dashboard服务,就要有访问权限,创建kubernetes-dashboard管理员角色

[root@k8s-master dashboard-ui]# kubectl apply -f dashboard-svc-account.yaml

 

 

 

扩展:

删除角色:kubectl delete clusterrolebinding kubernetes-dashboard

 

 

 

4.6 浏览器访问

浏览器输入:http://192.168.110.100:32001

 

 

五、    k8s卸载

彻底卸载k8s,两个步骤

步骤一:

sudo kubeadm reset -f

sudo rm -rvf $HOME/.kube

sudo rm -rvf ~/.kube/

sudo rm -rvf /etc/kubernetes/

sudo rm -rvf /etc/systemd/system/kubelet.service.d

sudo rm -rvf /etc/systemd/system/kubelet.service

sudo rm -rvf /usr/bin/kube*

sudo rm -rvf /etc/cni

sudo rm -rvf /opt/cni

sudo rm -rvf /var/lib/etcd

sudo rm -rvf /var/etcd

sudo apt-get remove kube*

 

步骤二:

yum -y remove kubelet kubectl kubeadm kubernetes-cni

步骤三:

如果需要,还可以去docker里删除k8s的镜像

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM