Kubernetes 部署教程 (Rocky 部署 k8s)

Kubernetes 部署教程 (Rocky 部署 k8s)
2025-02-20


百度百科 k8s 的用处

目录

    • 一、虚拟机配置
    • 二、安装 Rocky 系统
      • 1. 选择软件
      • 2. 硬盘分区选择
        • 首先选择自定义,点击完成
        • 然后选择标准分区,点击 "自动创建"
        • 删除 SWAP 分区
        • 将剩余空间分配给其他分区
        • 完成磁盘分区
      • 3. 设置 root 密码,关闭kdump选项,开始安装
    • 三、配置 Rocky 系统
      • 1. 配置软件源
        • 2. 关闭 selinux
        • 3. 开启内核转发
        • 4. 关闭 firewall
        • 5. 更新系统
        • 6. 安装并配置docker
      • 7. 安装和配置iptables
        • 1. 执行命令安装iptables
        • 2. 设置开机启动iptables
      • 8. 开启 IPVS
        • 1. 安装相关组件
        • 2. 开启相关组件
      • 9. 安装 Kubernetes
      • 10. 关闭电脑
    • 四、克隆虚拟机
    • 五、为两台虚拟机配置主机名和静态IP地址
      • 1. 启动两台虚拟机
      • 2. 更改主机名
      • 3. 设置静态IP地址
      • 重启两台虚拟机
    • 六、部署Kubernetes
    • 七、解决K8S报错
    • 八、解决 Node 节点 NotReady 问题
    • 九、安装Dashboard

一、虚拟机配置

请添加图片描述


二、安装 Rocky 系统

1. 选择软件

请添加图片描述


2. 硬盘分区选择

首先选择自定义,点击完成

请添加图片描述


然后选择标准分区,点击 “自动创建”

请添加图片描述


删除 SWAP 分区

请添加图片描述


将剩余空间分配给其他分区

请添加图片描述


完成磁盘分区

点击两次完成后,出现此弹窗,选择接受更改
请添加图片描述


3. 设置 root 密码,关闭kdump选项,开始安装

请添加图片描述


三、配置 Rocky 系统

1. 配置软件源

首先删除所有现有软件源

rm -rf /etc/yum.repos.d/*

然后创建并编辑新的repo文件
请添加图片描述

[BaseOS]
name=BaseOS
gpgcheck=0
baseurl=https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/

[AppStream]
name=AppStream
gpgcheck=0
baseurl=https://mirrors.aliyun.com/rockylinux/9/AppStream/x86_64/os/

[Docker]
name=Docker
gpgcheck=0
baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/

[Kubernetes]
name=Kubernetes
gpgcheck=0
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

2. 关闭 selinux

请添加图片描述


3. 开启内核转发

请添加图片描述

net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

4. 关闭 firewall
systemctl disable firewalld

请添加图片描述

5. 更新系统

执行命令等待即可

yum update -y

6. 安装并配置docker

先执行命令安装docker

yum install -y docker-ce* 

请添加图片描述
然后设置开机启动 docker

systemctl enable docker
systemctl enable containerd

请添加图片描述
最后编辑docker配置文件
请添加图片描述

{
        "iptables": false,
        "ip6tables": false,
        "exec-opts": ["native.cgroupdriver=systemd"],
        "registry-mirrors" : ["http://hub-mirror.c.163.com"]
}

7. 安装和配置iptables

1. 执行命令安装iptables
yum install -y iptables*

请添加图片描述


2. 设置开机启动iptables
systemctl enable iptables

请添加图片描述


8. 开启 IPVS

1. 安装相关组件
yum install -y  ipvsadm ipset sysstat conntrack libseccomp

2. 开启相关组件
echo "modprobe br_netfilter" >> /etc/rc.d/rc.local
echo "modprobe ip_vs" >> /etc/rc.d/rc.local
echo "modprobe ip_vs_rr" >> /etc/rc.d/rc.local
echo "modprobe ip_vs_wrr" >> /etc/rc.d/rc.local
echo "modprobe ip_vs_sh" >> /etc/rc.d/rc.local
echo "modprobe ip_tables" >> /etc/rc.d/rc.local
echo "modprobe ip_set" >> /etc/rc.d/rc.local
echo "modprobe xt_set" >> /etc/rc.d/rc.local
echo "modprobe ipt_set" >> /etc/rc.d/rc.local
echo "modprobe ipt_rpfilter" >> /etc/rc.d/rc.local
echo "modprobe ipt_REJECT" >> /etc/rc.d/rc.local
echo "modprobe ipip" >> /etc/rc.d/rc.local
echo "modprobe overlay" >> /etc/rc.d/rc.local
chmod 777 /etc/rc.d/rc.local

请添加图片描述


9. 安装 Kubernetes

yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6

请添加图片描述

设置开机启动Kubernetes
请添加图片描述


10. 关闭电脑

shutdown -h now

四、克隆虚拟机

请添加图片描述
找到克隆选项以后,一直下一步
请添加图片描述
选择完整克隆
请添加图片描述
点击完成,等待克隆完成


五、为两台虚拟机配置主机名和静态IP地址

1. 启动两台虚拟机

请添加图片描述


2. 更改主机名

在 Kubernetes0 上执行命令

echo "Matser" > /etc/hostname

请添加图片描述


在 Kubernetes1 上执行命令

echo "Node1" > /etc/hostname

请添加图片描述


3. 设置静态IP地址

在 Kubernetes0 上执行命令

nmcli connection delete ens160
nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.addresses 172.192.87.1/16 ipv4.gateway 172.192.0.1 ipv4.dns 8.8.8.8 ipv6.method disable

请添加图片描述


在 Kubernetes1 上执行命令

nmcli connection delete ens160
nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.addresses 172.192.87.2/16 ipv4.gateway 172.192.0.1 ipv4.dns 8.8.8.8 ipv6.method disable

请添加图片描述


重启两台虚拟机

reboot

六、部署Kubernetes

在 Master 主机上初始化 Kubernetes

kubeadm init --apiserver-advertise-address=172.192.87.1 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.6 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all

请添加图片描述
获得加入集群的命令

kubeadm token create --print-join-command

将上述代码在Master执行后,获得节点加入Master的命令。此命令在Node1上执行
我的获得代码是

kubeadm join 172.192.87.1:6443 --token vldu3t.jq0rr05ky7pw5alw --discovery-token-ca-cert-hash sha256:1b64c4ff362249f0626216a9b21e326f1a69b5b4cb7d57ad18a3518b1aa9f508

上述代码在Node1里执行就好了


七、解决K8S报错

请添加图片描述
此报错是环境变量的问题
请添加图片描述
admin.conf 只在 Master 里有

export KUBECONFIG=/etc/kubernetes/admin.conf
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

八、解决 Node 节点 NotReady 问题

请添加图片描述
在Master上安装CNI即可解决该问题

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

请添加图片描述
等待镜像拉取完毕即可解决该问题


九、安装Dashboard

执行命令安装

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

修改配置文件
请添加图片描述

执行命令使配置文件生效

kubectl apply -f recommended.yaml

等待 pod 创建完成后,创建需要登陆 dashboard 的 token
请添加图片描述

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

然后执行命令使配置文件生效

kubectl apply -f dashboard-adminuser.yaml

最后执行命令获得 token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

请添加图片描述

访问 https://172.192.87.1:30001 登录 kubernetes dashboard 面板
请添加图片描述

### 如何在 Rocky Linux 9 上部署 Kubernetes 集群 #### 准备工作环境 为了确保顺利部署,在开始之前需确认操作系统已更新至最新状态并安装必要的工具包。 ```bash dnf update -y && dnf install -y git curl wget nano net-tools conntrack iptables sudo bash-completion ``` 对于 SELinux 的设置,建议将其调整为 permissive 模式以便减少不必要的权限冲突[^3]。可以通过编辑 `/etc/selinux/config` 文件来实现这一更改,并重启系统使改动生效。 #### 安装 Docker 和 CRI-Dockerd 由于官方推荐使用 containerd 或者 cri-o 作为容器运行时接口(CRI),但对于习惯于Docker的用户来说也可以通过安装 `cri-dockerd` 来兼容旧版操作流程: ```bash # 添加仓库 cat <<EOF | sudo tee /etc/yum.repos.d/docker-ce.repo [docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://download.docker.com/linux/centos/$releasever/stable/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://download.docker.com/linux/centos/gpg EOF # 安装docker ce和cri-dockerd yum install docker-ce docker-ce-cli containerd.io cri-dockerd -y # 启动服务并设为开机自启 systemctl start docker systemctl enable docker systemctl start cri-dockerd.service systemctl enable cri-dockerd.service ``` #### 设置 Kubelet 参数 为了让 kubelet 能够正常识别所使用的 cgroup driver, 修改其配置文件以指定 systemd 作为驱动程序[^4]: ```bash vim /etc/sysconfig/kubelet # 增加如下行 KUBELET_EXTRA_ARGS="--cgroup-driver=systemd" ``` #### 初始化 Master 节点 完成上述准备工作后可以在 master 节点上初始化 kubernetes 集群: ```bash kubeadm init --pod-network-cidr=10.244.0.0/16 \ --apiserver-advertise-address=$(hostname -I | awk '{print $1}')\ --cri-socket unix:///var/run/cri-dockerd.sock ``` 此命令会返回加入 worker nodes 所需的具体指令,请妥善保存该信息用于后续节点接入[^2]。 #### 加入 Worker Nodes 按照从 master node 获取到的信息,在每一个想要添加进来的worker node上面执行相应的join命令即可成功连接整个集群。 #### 安装 Pod Network Addon (仅限Master Node) 最后一步是在 master node 上面应用一个 pod network addon 插件,比如 flannel : ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 以上就是在 Rocky Linux 9 中构建 Kubernetes 集群的一个基本过程概述[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值