linux cpu占用率如何看
209
2022-10-23
在CentOS 8.2上安装Kubernets集群
本人最近在学习K8S相关的技术,需要在虚拟机上安装和配置一个简单的K8S群集,所以也整理安装步骤出来,分享出来给大家一个参考,让需要安装K8S集群的小伙伴少走点弯路,我将会从零开始介绍,如何一步一步安装K8S集群。
安装环境:
虚拟机软件:VMware Workstation 16 (当然,低一点的版本也是可以的,只要支持CentOS 8)
操作系统:CentOS-8.2.2004-x86_64-minimal
K8S-Master IP: 192.168.0.20
K8S-Node1 IP: 192.168.0.21
YUM源:国内阿里YUM源
第一步:在VMware Workstation上安装CentOS-8.2操作系统
打开VMware Workstation软件,在主界面左上角->文件->新建虚拟机。
选“典型”,然后“下一步”
选“稍后安装操作系统”, 然后“下一步”
这里选“Linux”, 版本:CentOS 8 64位
输入一个你喜欢的虚拟机名字和虚拟机文件的存放位置
设置虚拟机的硬盘,控制节点是不跑大的数据的,所以100G已经足够了
点“自定义硬件”
内存建议最少8G,处理器建议最少1到2核,网卡选 “桥接模式”, CD/DVD添加CentOS-8.2.20的ISO文件
虚拟机的壳创建好后,就开机进行安装CentOS 8操作系统
选“Install CentOS Linux 8“
选“Englist”,因为这次用minimal版本,没有图形界面的,可以直接使用英语,建议小伙伴可以安装DVD版本,并且安装图形界面和浏览器的。
点“Installation Destination”
当然还要设置一下root密码
等待10几分钟后,完成CentOS 8的操作系统安装,并完成重启。
第二步:CentOS 8的系统基本设置
修改主机名
[root@localhost ~]# hostnamectl set-hostname --static master
修改网卡
[root@localhost ~]# vi/etc/sysconfig/network-scripts/ifcfg-ens160
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.20 (设置自己路由器的一个可用IP)
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.114
[root@localhost ~]# nmcli c up ens160
[root@localhost ~]# nmcli d reapply ens160
[root@localhost ~]# nmcli d connect ens160
[root@localhost ~]# nmcli c reload ens160 重启ens160这张网卡
[root@k8s-master ~]# ip ad 检查是否可以正常获得IP地址
[[root@k8s-master ~]# ping baidu.com 检查是否可以访问外网
设置hosts
[root@k8s-master ~]# vi /etc/hosts
配置阿里YUM源
[root@k8s-master ~]# mkdir /etc/yum.repos.d/bak
[root@k8s-master ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
[root@k8s-master ~]# cd /etc/yum.repos.d/bak/
[root@k8s-master ~]# cp CentOS-AppStream.repo CentOS-Base.repo CentOS-centosplus.repo CentOS-Extras.repo CentOS-HA.repo CentOS-PowerTools.repo ..
[root@k8s-master ~]# cd ..
[root@k8s-master ~]# vi CentOS-Base.repo
[BaseOS]
name=CentOS-$releasever - Base
#mirrorlist=~]# vi CentOS-AppStream.repo
[AppStream]
name=CentOS-$releasever - AppStream
#mirrorlist=~]# vi CentOS-centosplus.repo
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=~]# vi CentOS-Extras.repo
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=~]# vi CentOS-HA.repo
[HighAvailability]
name=CentOS-$releasever - HA
#mirrorlist=~]# vi CentOS-PowerTools.repo
[PowerTools]
name=CentOS-$releasever - PowerTools
#mirrorlist=~]# dnf clean all
[root@k8s-master ~]# dnf makecache
[root@k8s-master ~]# dnf repolist
安装系统一些必要的软件包:
[root@k8s-master ~]# yum install -y net-tools bash-completion lsof git nano vim wget curl zip perl lrzsz bind-utils gcc
[root@k8s-master ~]# firewall-cmd --set-default-zone=trusted --关闭系统防火墙
[root@k8s-master ~]# systemctl stop firewalld.service --停止防火墙
[root@k8s-master ~]# systemctl disable firewalld.service --禁用防火墙开机时启动
[root@k8s-master ~]# systemctl status firewalld.service --查看防火墙状态
[root@k8s-master ~]# sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config --禁用selinux
关闭swap,注释swap分区
[root@k8s-master ~]# swapoff -a --暂时关闭
[root@k8s-master ~]# vi /etc/fstab --永久关闭
在/dev/mapper/cl-swap这行的开头,加个#号注释这行
配置内核参数,将桥接的IPv4流量传递到iptables的链
[root@k8s-master ~]# cat > /etc/sysctl.d/k8s.conf < net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF [root@k8s-master ~]# sysctl --system 做到这一步建议关机,创建一个虚拟机快照。 第三步:Kubernets控制节点的安装步骤 安装社区版Docker 安装必要的一些系统工具包 [root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 添加阿里yum源,速度飞快 [root@k8s-master ~]# yum-config-manager --add-repo ~]# yum -y install docker-ce [root@k8s-master ~]# docker -v --检查docker版本 [root@k8s-master ~]# systemctl status docker.service --检查docker服务的状态 添加阿里-docker仓库加速器 [root@k8s-master ~]# mkdir -p /etc/docker [root@k8s-master ~]# tee /etc/docker/daemon.json<<-'EOF' { "registry-mirrors":["~]# systemctl daemon-reload --重新加载Docker的服务 [root@k8s-master ~]# systemctl restart docker --重启Docker服务 [root@k8s-master ~]# systemctl enable docker.service --开机启动Docker服务 [root@k8s-master ~]# systemctl status docker.service --检查Docker服务状态 确保Docker是正常运行的 安装kubectl、kubelet、kubeadm 添加阿里kubernetes的YUM源 [root@k8s-master ~]# cat < [kubernetes] name=Kubernetes baseurl=Kubectl Kubelet Kubeadm 安装过程中观察一下kubectl kubelet kubeadm安装的版本 [root@k8s-master ~]# yum install kubectlkubelet kubeadm -y [root@k8s-master ~]# systemctl enablekubelet [root@k8s-master ~]# kubectl version --查看kubectl的版本 kubectl-version=1.23.3 注意:这里的kubectl版本为1.23.3,下面安装Kubelet时必要跟这个版本要一致,不然会报错 解决kubelet初始化时,C-group的报错问题 [root@k8s-master ~]# cat >/etc/docker/daemon.json < {"exec-opts":["native.cgroupdriver=systemd"]} EOF [root@k8s-master ~]# systemctl restart docker --重启docker 第四步:初始化Kubernetes集群 注意:上面的kubectl版本为1.23.3,这里安装Kubelet时必要跟123.3版本要一致,不然会报错 [root@k8s-master ~]# kubeadm init --kubernetes-version=1.23.3 \ --apiserver-advertise-address=192.168.0.20 \ --image-repositoryregistry.aliyuncs.com/google_containers \ --service-cidr=10.10.0.0/16--pod-network-cidr=10.122.0.0/16 参数说明: 192.168.146.20 --> API Server IP (也是K8S-Master的IP地址,因为API安装在Master上) image-repository registry.aliyuncs.com/google_containers --> 注册仓库地址,这个是国内阿里云的资源 10.10.0.0/16 ---> 这个是CIDR内部网段,一般可以不修改 10.122.0.0/16 ---> 这个是POD内部使用的网段,一般可以不修改 kubernetes-version ---> 指定kubernetes指定安装的版本为1.23.3,注意版本要一致 见到下面信息表示Kubernetes群集初始化成功了 记得将Kubeadm join这两行记录下来,之后Kubernetes的节点服务器添加到Kubernetes的Master服务器时需要进行验证的 根据初始化成功Kubernetes的信息,如果需要使用的K8S群集,需要运行下面的命令。 如果你是root用户,执行下面的命令: [root@k8s-master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf 这个是临时的命令,每次重启服务器都要执行一次,不然无法显示kubectl getpod和kubectl get node的信息 [root@k8s-master ~]# kubectl get pod--all-namespaces --查看静态POD的服务组件 [root@k8s-master ~]# kubectl get node --查看节点的信息 Master节点显示NotReady的状态,这是因为corednspod没有启动,缺少网络pod,下面将安装Calico网络 安装calico网络 [root@k8s-master ~]# kubectl apply -f ~]# kubectl get pod --all-namespaces --等待几分钟,可以见到Calico网络的容器已正在运行中。 [root@k8s-master ~]# kubectl get node --再次检查,已经是Ready状态了 安装Kubernetes-Dashboard 由于官方部署Dashboard的服务没使用nodeport,所以需要将yaml文件下载到本地,在service里添加nodeport 2.0.0-rc7版本--->检查是否有最新的版本 [root@k8s-master ~]# kubectl apply -f ~]# kubectl apply -f ~]# kubectl create -f recommended.yaml ---加载安装Dashboard [root@k8s-master ~]# kubectl get pod --all-namespaces --等待几分钟可以看到Dashboard在运行 [root@k8s-master ~]# kubectl get svc -n
kubernetes-dashboard 在浏览器中输入Dashboard的IP地址进行访问,后面自己配置一个访问Token,就可以直接访问K8S的Dashboard了。 ~]# kubeadm join192.168.0.20:6443 --token sqgnnf.m0wbjyq71gi8prat --discovery-token-ca-cert-hashsha256:38f8c7652828f103b08e59c62300f17ceea43f0f0b5dd89bea86c6e0c0412f0d 如果Node节点是隔了很长时间才安装配置,那么Master初始化时创建的Token肯定已经过期,Token过期将会导致Master无法添加Node服务器,将用下面的命令重新创建Token [root@k8s-master ~]#kubeadm token generate #在Master上生成新的token ydgyek.9aqk1imeu8gqesbd 生成新的token后,再用下面的命令来生成一个新的discovery-token [root@k8s-master ~]#kubeadm token create ydgyek.9aqk1imeu8gqesbd --print-join-command --ttl=0 跑完上面两条命令,将会在Master上输出一个在节点上加入Master的全新token. kubeadm join 192.168.0.20:6443 --token ydgyek.9aqk1imeu8gqesbd --discovery-token-ca-cert-hashsha256:38f8c7652828f103b08e59c62300f17ceea43f0f0b5dd89bea86c6e0c0412f0d 将Master上输出的命令,直接在Node节点上跑,将节点加入到Master服务器 在Node1上,见到下面的信息,表示已经成功将Node加入到Master [root@k8s-master ~]# kubectl get node --在Master上可以见到Node已经存在了 为什么会显示NotReady呢。因为还需要在Node上跑下面这个命令。 [root@k8s-node1 ~]# export KUBECONFIG=/etc/kubernetes/admin.conf [root@k8s-master ~]# kubectl get node --再检查一次变成Ready了 在此已完成了在CentOS上完成安装K8S的集群配置了,这个只是前面的基本安装配置,如果需要使用到更多的K8S功能,需要你们另外找其他更专业的文档去进行配置。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~