尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Rockylinux 与 K8s 的安装

Rockylinux 与 K8s 的安装 这里写目录标题1 RockyLinux 的下载安装1.1 RochyLinux 的下载1.2 创建虚拟机1.3 RockyLinux 的安装1.4 使用 Xshell 链接虚拟机1.5 安装两台工作节点1.6 系统配置1基本配置2替换源镜像3安装必备工具4系统升级和内核升级1.7 虚拟机拍快照2 K8s 的安装2.1 Runtime 的安装2.2 K8s 的安装2.3 K8s 必备组件的安装2.4 图形化界面的使用1Dashboard2 KRM2.5 快速上线与删除一个服务1 RockyLinux 的下载安装1.1 RochyLinux 的下载Rocky Linux 是一个开源的企业级操作系统旨在实现与 Red Hat Enterprise Linux® 100% 的逐个错误兼容。Rocky Linux中文名洛基是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版作为CentOS稳定版停止维护后与RHELRed Hat Enterprise Linux完全兼容的开源替代方案由社区拥有并管理支持x86_64、aarch64等架构。我的PC是英特尔×86结构的所以选择x86安装包我想选择稳定一点的版本所以选 Rocky Linux 9接着点击修小ISO文件。下载链接最好把链接复制到迅雷进行下载比纯用浏览器下载更快一些。1.2 创建虚拟机下载完镜像文件后接下来是安装在此之前需要先安装 VMware Workstation版本要17以后。安装好 VMware Workstation 后按照以下步骤创建虚拟机点击创建新的虚拟机选择“自定义”然后点击“下一步”继续点击下一步选择安装所需的镜像文件选择稍后安装操作系统版本选择 Rochy Linux 64 位如果没有可以选择 Red Hat Enterprise Linux 9 64 位设置虚拟机名称与位置若需要我这里使用默认位置处理器的数量保持2内存选择4GB网络类型使用默认的 NAT 模式SCSI控制使用推荐的 LSI Logic磁盘类型也是保持默认就行虚拟磁盘选择“创建新虚拟磁盘”默认就是这个选项磁盘容量选择40GB点击下一步点击完成可以看到左边侧边栏有一台新的虚拟机名称为 k8s-master01我可以可以点击“编辑虚拟机设置”这里可以修改内存大小、处理器数量、磁盘空间等这里也可以把USB控制器和声卡删掉当然不删也行这里主要就是演示如何修改硬件配置点击CD/DVD (IDE)设备状态选择“启动时连接”然后在“使用ISO映像文件”中选择我们前面下载的 ISO镜像文件然后点击确定1.3 RockyLinux 的安装虚拟机创建好后按下面的步骤安装操作系统点击“开启此虚拟机”看到下面的界面后鼠标点进去然后选择“Install Rocky Linux Minimal 9.8”出现下面的界面时要把语言设置成英文美版配置磁盘点击 Custom将swap分区去掉更新根目录的空间按下面1234的步骤执行此时会出现一个警告不管它再点一次 Done:接下来会跳出一个本次修改的摘要我们这里点击“Accept Changes”就行了接下来会退出安装主界面我们设置 root 密码按下Done之后可能有警告我们不管他继续按 Done回到安装主界面之后接下来是配置网络这里看到的 IP 是自动获取的可能下一次重启就变了所以需要将其改成静态下面的IP和DNS需要记住按下面123456的顺序配置网络IP、网关、DNS都选择和上面截图一样的然后修改主机名接下来修改时间如果时区显示的不是上海则要改成上海如果是上海则可以跳过这一步回到安装主页面后点击“Begin Installation”安装还是有些漫长的需要等待一段时间在等待的过程中可以按照上面的流程安装其他几个虚拟机各种设置和上面一样创建节点时候不要克隆因为会出现一些未知的问题这里主要学习K8s尽快不要在低级错误上浪费时间出现下面的界面说明安装成功点击 “Reboot System” 重启输入用户名root和密码刚刚设的1.4 使用 Xshell 链接虚拟机在虚拟机终端输入 ip a 获取 IP 地址打开 Xshell点击左上角的“新建按钮”填写会话名称和主机IP在用户身份验证中填写用户名和密码双机我们刚刚新建的会话接下来会跳出一个窗口问题是否接受主机密钥这里点击“接受并保存”看到下面界面说明连接成功如果能看到下面的界面说明机器能上公网1.5 安装两台工作节点名字分别命名为 k8s-node01 和 k8s-node02 只需要在创建虚拟机、安装系统以及Xshell连接虚拟机的过程中涉及命名的时候写名字即可最后的节点情况如下1.6 系统配置1基本配置学习环境不需要有安全组配置所以可以关闭swap 分区会导致集群性能下降所以也需要关闭# 关闭防火墙systemctl disable--nowfirewalld systemctl disable--nowdnsmasq# 会报错Failed to disable unit: Unit file dnsmasq.service does not exist.不用管他# 关闭 SELINUXsetenforce0sed-is#SELINUXenforcing#SELINUXdisabled#g/etc/sysconfig/selinuxsed-is#SELINUXenforcing#SELINUXdisabled#g/etc/selinux/config# 关闭swap分区如果前面安装系统的时候把swap分区去掉了那这一步可以省略swapoff-asysctl-wvm.swappiness0sed-ri/^[^#]*swap/s^#/etc/fstab可以只复制一次然后把命令同时贴到多个虚拟机中只需要提前在 Xshell 打开会话然后在其中一个会话中右击——发送键输入到所有会话后续粘贴命令到这个会话也会自动复制到其他会话中。2替换源镜像接下来替换镜像源因为我们在国内sed-es|^mirrorlist|#mirrorlist|g\-es|^#baseurlhttp://dl.rockylinux.org/$contentdir|baseurlhttps://mirrors.aliyun.com/rockylinux|g\-i.bak\/etc/yum.repos.d/*.repo dnf makecache3安装必备工具yuminstallwgetjq psmiscvimnet-tools telnet yum-utils device-mapper-persistent-data lvm2git-y4系统升级和内核升级# 系统升级dnf update-y# 导入 ELERPO keyrpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 安装 ELERPO 源dnfinstall-yhttps://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm# 升级内核sudodnf--enablerepoelrepo-kernelinstall-y\kernel-ml\kernel-ml-core\kernel-ml-modules\kernel-ml-modules-extra\kernel-ml-devel# 更改内核的启动顺序使用最新的内核启动系统grubby --set-default0# 重启reboot1.7 虚拟机拍快照配置完成后输入sudo shutdown -h now拍快照的目的是为了能迅速恢复假如你后续做了其他设置下载了很多东西某天你想清空想恢复回来就可以通过快照恢复2 K8s 的安装2.1 Runtime 的安装# 配置 Docker 源yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装 containerdyuminstallcontainerd.io-y# 配置内核catEOF|sudotee/etc/modules-load.d/containerd.confoverlay br_netfilter EOFsudomodprobe overlaysudomodprobe br_netfiltercatEOF|sudotee/etc/sysctl.d/99-kubernetes-cri.confnet.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 net.bridge.bridge-nf-call-ip6tables 1 EOFsudosysctl--system接下来创建 containerd 的配置文件# 创建配置文件所在目录sudomkdir-p/etc/containerd# 导出默认配置containerd config default|sudotee/etc/containerd/config.toml# 修改默认配置sed-is#SystemdCgroup false#SystemdCgroup true#g/etc/containerd/config.tomlsed-is#k8s.gcr.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g/etc/containerd/config.tomlsed-is#registry.gcr.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g/etc/containerd/config.tomlsed-is#registry.k8s.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g/etc/containerd/config.toml# 启动Containerdsystemctl daemon-reload systemctlenable--nowcontainerd在终端输入ctr plugin ls看看 containerd 是否可用主要看 overlayfs 和 cri 是否 ok如果不是 ok那就问AI2.2 K8s 的安装学习过程中推荐安装最新版的 K8s我们可以去官网查询当前最新版本是哪一版目前最新的是1.36那我们就安装1.36的版本如果最新的版本不是 1.36了那么下面的命令需要修改版本号# 配置 K8s 源catEOF|tee/etc/yum.repos.d/kubernetes.repo[kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes-new/core/stable/v1.36/rpm/ enabled1 gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/kubernetes-new/core/stable/v1.36/rpm/repodata/repomd.xml.key EOF# 安装 K8syuminstallkubeadm-1.36.* kubelet-1.36.* kubectl-1.36.*-ysystemctlenable--nowkubelet# 这条命令出现报错的话不用管# 查看版本号kubectl version我的版本是 1.36.4接下来是下载镜像如果小版本号不同那么下面的命令需要修改小版本号# 下载镜像kubeadm config images pull\--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version1.36.4# 注意小版本号另外如果机器在国外那么可以把 --image-repository 参数去掉下面的命令也是如此接下来是配置主节点# K8s 的初始化命令只能在第一个主节点执行并且只能执行一次IP地址要改成第一个主节点的IP地址kubeadm init --apiserver-advertise-address192.168.174.129 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --cri-socketunix:///var/run/containerd/containerd.sock--kubernetes-version1.36.4# 注意小版本号如果出现下面的界面说明初始化成功上面的界面还会出现配置 kubectl 的命令橙色框和添加工作节点的命令红色框我们把配置 kubectl 的命令复制下来输入到主节点# 配置 kubectlmkdir-p$HOME/.kubesudocp-i/etc/kubernetes/admin.conf$HOME/.kube/configsudochown$(id-u):$(id-g)$HOME/.kube/config输入kubectl get node如果显示的是下面的内容说明配置正确接下来是配置工作节点在前面配置主节点时会出现添加工作节点的命令红色框我们复制下来在工作点解输入kubeadmjoin192.168.174.129:6443--tokenc2tu4d.0cdb01wju43q913j\--discovery-token-ca-cert-hash sha256:65f7bb6aa34c0a9dda98b4aa5d5c5c6f2b2665d7486adbaa4031ea8a92a98a44出现下面的界面说明添加成功在主节点可以输入kubectl get nodes查看各个集群有哪些节点分别承担什么角色node 单数复数都可以工作节点也可以配置 kubectl 但不建议这个命令最好只在主节点配置。2.3 K8s 必备组件的安装gitclone https://gitee.com/dukuan/k8s-ha-install.gitcdk8s-ha-install/gitcheckout manual-installation-v1.36.x# 分支版本要和 K8s 版本相对应cdsingle/ kubectl apply-f.输入kubectl get po -n kube-system查看组件的启动情况后台启动需要时间所以如果当前没有启动即 STATUS 还没到 Running可以过个几分钟再输入一次下面的界面是所有组件都启动后的状态接下来输入kubectl get node可以看到此时各个节点的状态都变成 Ready 了使用kubectl top node查看节点资源使用情况2.4 图形化界面的使用1Dashboard# 查看 dashboard 的服务kubectl get svc-nkubernetes-dashboard# 获取 dashboard 的管理员密钥默认两个小时有效期kubectl create token admin-user-nkube-system在浏览器中输入https://192.168.174.129:31233然后输入token如果想延长有效期可以添加参数 durationkubectl create token admin-user-nkube-system--duration365h登录进入后是下面的界面可以切换命名空间查看 PodsPods 是什么先不用管2 KRM终端输入kubectl get svc -n krm80开头不需要加密浏览器输入 http://192.168.174.129:32215账号和密码都是 admin登录后是下面的样子初学者图形化界面尽量少用要尽量使用 kubectl即原生 k8s 操作因为我们要学的就是这个。2.5 快速上线与删除一个服务拿到镜像后给服务创建一个名字例如 counterkubectl create deployment counter--imageregistry.cn-beijing.aliyuncs.com/dotbalo/counter:v1创建了服务后系统会创建一个 Pod用来管理容器可以通过kubectl get po查询。查询kubectl get deployment# 或者 kubectl get deploy暴露服务让集群外的机器也能访问到kubectl expose deployment counter--port80--typeNodePort查看服务kubectl get svc可以在集群外通过http://192.168.174.129:31779访问服务。编辑kubectl delete deploy counter删除kubectl delete deploy counter出现下面界面说明成功删除
返回列表