Rancher部署k8s集群测试安装nginx(节点重新初始化方法,亲测)

本文详细介绍了如何在Linux环境中升级内核,配置时间同步,设置Hostname和hosts,关闭防火墙和SELinux,管理swap,以及安装和配置DockerCE、Rancher、Kubernetes(包括Kubectl和K8s集群),最后测试Nginx工作负载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装前准备工作

环境
机器名IP地址部署内容
rancher172.16.5.221rancher
k8smaster172.16.5.222Control Plane, Etcd
k8sworker01172.16.5.223worker
k8sworker02172.16.5.224worker
k8sworker03172.16.5.225worker

需在每个节点都进行操作,可以使用xshell工具分屏进行批量操作。

升级linux内核
#导入ELRepo仓库的公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#为yum安装ELRepo仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#查看可用版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装最新内核
yum --enablerepo=elrepo-kernel install kernel-ml

# 查看当前可用内核
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#升级
grub2-set-default 0
时间同步
#查看系统时间
timedatectl 
#设置北京时间
timedatectl set-timezone Asia/Shanghai
#安装ntp服务
yum install -y ntp

#修改ntp相关参数,修改成如下内容
vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-g -x"

#启动ntp服务,开机自启动
systemctl restart ntpd && systemctl enable ntpd

#设置linux系统时间宇远程ntp服务器同步
Hostname设置
#修改主机名
sudo hostnamectl set-hostname k8smaster
#bash生效
bash
#重启
reboot
hosts设置
#修改hosts文件
vim /etc/hosts

172.16.5.222 k8smaster
172.16.5.223 k8sworker01
172.16.5.224 k8sworker02
172.16.5.225 k8sworker03
172.16.5.221 rancher
关闭防火墙,selinux
# 关闭防火墙
systemctl stop firewalld
# 关闭防火墙开机启动
systemctl disable firewalld

#关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
reboot
关闭swap
# 临时
swapoff -a 
# 永久
sed -ri 's/.*swap.*/#&/' /etc/fstab 
安装docker
yum install -y yum-utils
# 添加yum源,这里添加的是阿里云的yum源
yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看docker版本
yum list docker-ce --showduplicates | sort -r
# 您可以选择其他版本
yum  -y install docker-ce-20.10.12-3.el7
# 设置国内镜像加速,你也可以用自己的仓库镜像,这里是我申请的阿里云个人加速镜像
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fuchp8pk.mirror.aliyuncs.com"]
}
EOF
# 导入镜像设置
systemctl daemon-reload
# 启动docker
systemctl restart docker
# 设置docker开机启动
systemctl enable docker

二、安装rancher

部署rancher

自行选择安装rancher版本,rancher平台地址:ip:8443

docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /opt/rancher/data:/var/lib/rancher --privileged rancher/rancher:v2.6.3


# 找到您的容器ID
docker ps
# 找到密码
docker logs  ${container-id}  2>&1 | grep "Bootstrap Password:"

在这里插入图片描述

三、安装k8s

安装k8s集群

通过RKE的方式安装k8s,在rancher里面创建自定义k8s集群,如果报错,请重启rancher,自定义项目名称,选择k8s版本,然后选择Control Plane, Etcd复制语句在master执行,选择worker到worker节点上面执行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

易错点,重新初始化

如果报错,请在每个节点上面清除安装的残留文件,重启后重新初始化,正常情况下节点会正常初始化成功,如果有报错请检查前面的准备工作是否完成,细节点。如果有问题请清理残余文件重新初始化。

docker stop $(docker ps -aq)
docker system prune -f
docker volume rm $(docker volume ls -q)
docker image rm $(docker image ls -q)
rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /opt/cni \
       /opt/rke \
       /run/secrets/kubernetes.io \
       /run/calico \
       /run/flannel \
       /var/lib/calico \
       /var/lib/etcd \
       /var/lib/cni \
       /var/lib/kubelet \
       /var/lib/rancher/rke/log \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico

四、安装kutectl

#下载最新版本:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

#验证二进制文件(可选)
#下载 kubectl 校验和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

#根据校验和文件验证 kubectl 二进制文件:
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
如果有效,则输出为:
kubectl: OK

#安装 kubectl
install -o root -g root -m 0755 kubectl /usr/bin/kubectl

#测试以确保您安装的版本是最新的:
kubectl version --client

#将rancher集群中kubeconfig的内容复制到服务器config中
mkdir -p $HOME/.kube
vi $HOME/.kube/config    #粘贴复制的内容

#测试kubectl
kubectl get node

下载文件传入到主节点 $HOME/.kube/config
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五、测试安装nginx工作负载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<think>好的,我需要帮用户介绍如何在Ubuntu上使用RKE和Helm部署Kubernetes集群。首先,我得确保自己理解各个组件的功能和步骤顺序。RKE是RancherKubernetes发行版,用于快速部署集群,而Helm是包管理工具,用来安装应用。用户可能已经有一定的基础,但需要明确的指导。 首先,我需要列出所需的准备工作,比如多台Ubuntu服务器、SSH访问、Docker安装等。这部分很重要,因为环境配置不当会导致后续步骤失败。要详细说明每台服务器的角色,如master、worker,并提醒用户注意主机名解析和防火墙设置,避免常见问题。 接下来是安装RKE。用户可能不熟悉RKE的安装过程,需要给出具体的下载和配置步骤。cluster.yml文件的配置是关键,必须解释每个部分的作用,比如节点角色、SSH密钥路径等。生成配置文件后,执行rke up命令,这里需要提醒用户检查输出是否有错误,并提供排查建议,比如查看日志文件。 然后是安装kubectl,这是管理集群的必要工具。要说明如何下载和配置kubectl,以及如何复制kubeconfig文件到正确的位置,确保用户能顺利执行kubectl命令。 验证集群状态时,用户可能需要确认节点是否就绪,可以给出具体的kubectl命令示例,并解释预期的输出结果。这部分帮助用户确认部署是否成功,避免后续步骤出现问题。 安装Helm部分需要指导用户下载二进制文件,移动到PATH目录,并初始化Helm。要提醒用户可能需要的权限问题,比如使用sudo,以及添加仓库的步骤,为后续应用部署做准备。 最后,给出一个使用Helm部署应用的例子,比如Nginx,这样用户能立即看到成果。同时,提示可能需要的后续操作,如配置Ingress、存储卷等,帮助用户进一步探索。 在思考过程中,还要注意潜在的问题,比如网络连通性、端口开放、权限问题,以及不同版本软件的兼容性。需要以清晰的结构分步骤说明,避免信息过载,同时确保命令准确无误。另外,使用中文回答,避免专业术语的直译,让内容更易懂。可能还需要添加注意事项,比如生产环境需要高可用配置,安全组设置等,帮助用户避免常见陷阱。 总结下来,回答应该分步骤进行,每个步骤详细但不过于冗长,确保用户能够跟随操作,并在遇到问题时知道如何排查。同时,提供示例和后续指引,增强实用性和完整性。</think>以下是在Ubuntu系统上使用RKE(Rancher Kubernetes Engine)和Helm部署Kubernetes集群的步骤指南: --- ### 一、准备工作 1. **服务器要求** - 至少3台Ubuntu服务器(建议18.04/20.04/22.04 LTS) - 角色分配:1个Control Plane节点 + 2个Worker节点 - 确保所有节点间SSH互通(建议配置密钥认证) - 所有节点安装Docker(推荐20.10+版本) 2. **配置基础环境** ```bash # 所有节点执行 sudo apt update sudo apt install -y docker.io sudo systemctl enable --now docker ``` 3. **关闭Swap** ```bash sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用 ``` --- ### 二、安装RKE 1. **下载RKE二进制文件** ```bash wget https://github.com/rancher/rke/releases/download/v1.4.8/rke_linux-amd64 chmod +x rke_linux-amd64 sudo mv rke_linux-amd64 /usr/local/bin/rke ``` 2. **创建集群配置文件 `cluster.yml`** ```yaml nodes: - address: 192.168.1.10 # 替换为Control Plane节点IP user: ubuntu role: [controlplane, etcd] ssh_key_path: ~/.ssh/id_rsa - address: 192.168.1.11 # Worker节点1 user: ubuntu role: [worker] ssh_key_path: ~/.ssh/id_rsa - address: 192.168.1.12 # Worker节点2 user: ubuntu role: [worker] ssh_key_path: ~/.ssh/id_rsa services: etcd: snapshot: true kube-api: service_node_port_range: 30000-32767 ``` 3. **部署Kubernetes集群** ```bash rke up --config cluster.yml # 执行后会自动生成kube_config_cluster.yml ``` --- ### 三、安装kubectl ```bash sudo apt install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt update sudo apt install -y kubectl mkdir ~/.kube cp kube_config_cluster.yml ~/.kube/config ``` --- ### 四、验证集群状态 ```bash kubectl get nodes # 应显示所有节点状态为Ready kubectl get pods -A # 检查核心组件运行状态 ``` --- ### 五、安装Helm 1. **下载Helm** ```bash curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash ``` 2. **初始化Helm** ```bash helm repo add stable https://charts.helm.sh/stable helm repo update ``` --- ### 六、使用Helm部署应用示例(以Nginx为例) ```bash helm install my-nginx bitnami/nginx \ --set service.type=NodePort \ --set service.nodePorts.http=30080 # 验证部署 kubectl get svc my-nginx -w ``` --- ### 注意事项 1. **网络插件**:RKE默认使用Canal网络插件,如需更换需修改`cluster.yml` 2. **证书问题**:若遇到证书错误,检查时间同步`sudo timedatectl set-ntp true` 3. **高可用部署**:生产环境建议部署3个Control Plane节点 4. **防火墙规则**:需开放以下端口: - TCP 6443 (Kubernetes API) - TCP 2379-2380 (etcd) - TCP 10250-10256 (kubelet/metrics) 通过以上步骤即可完成基于RKE和Helm的Kubernetes集群部署。后续可通过Helm Charts快速部署MySQL、Redis等常见中间件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShawnKingY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值