如何在本地配置或安装 Kubernetes。在单个服务器上安装 Kubernetes 的分步指南

问题描述 投票:0回答:1

如何在具有 1 个 Master 节点和 1 个或多个 Worker 节点的单台服务器上安装 Kubernetes?

我想在一台服务器上安装 Kubernetes 集群。服务器很重。

以下是服务器信息。

Machine processor information

System RAM Information

我无法安装单节点集群,因为这不是要求。

kubernetes installation kubeadm on-premise
1个回答
0
投票

花了整整一周时间并尝试了互联网上提供的不同指南后,我终于在我的服务器上安装了 Kubernetes 集群。

以下是我遵循的步骤,这些步骤对我有用。

虚拟机配置

操作系统:Ubuntu 22.04

VM-1(主节点)
内存:16 GB
处理器:8 个 vcpu
硬盘:50GB

VM-2(工作节点)
内存:16 GB
处理器:8 个 vcpu
硬盘:100GB

您可以使用这样的较低配置,RAM:4GB,CPU:4,HD:25GB

创建虚拟机后使用BRIDGE网络。 enter image description here

遵循的步骤

1.在Master和Worker节点上设置主机名

$ sudo hostnamectl set-hostname“主节点”
$ 执行bash

$ sudo hostnamectl set-hostname“worker-node1”
$ 执行bash


2.更新 /etc/hosts 用于主机名解析的文件

获取您的Master节点和Worker节点的IP地址。使用此命令获取 IP 地址“$ ip addr show

在我的例子中,工作节点 IP 地址是 192.168.54.22

enter image description here

转到 /etc/hosts 并在文件末尾添加 2 个条目,如下所示

192.168.54.21大师
192.168.54.22工人


3.从主节点 ping 工作节点,从工作节点 ping 主节点

转到主节点的终端并像这样 ping 工作节点

$ ping 工人

您应该能够得到如下回复。
在下图中,忽略 ip 地址。我有多个虚拟机正在运行。该图片只是一个示例,向您展示工作节点的响应。

enter image description here


4.换掉

sudo swapoff -a

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab


5. IP 转发和桥接路由

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf    
overlay    
br_netfilter    
EOF     

sudo modprobe overlay    
sudo modprobe br_netfilter    

设置所需的 sysctl 参数,参数在重新启动后仍然存在

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

应用 sysctl 参数而不重新启动

sudo sysctl --system

通过运行以下命令验证 br_netfilter、overlay 模块是否已加载:

lsmod | grep br_netfilter
lsmod | grep overlay

通过运行以下命令,验证 sysctl 配置中的 net.bridge.bridge-nf-call-iptables、net.bridge.bridge-nf-call-ip6tables 和 net.ipv4.ip_forward 系统变量是否设置为 1 :

sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

6.安装容器运行时

curl -LO https://github.com/containerd/containerd/releases/download/v1.7.14/containerd-1.7.14-linux-amd64.tar.gz   
sudo tar Cxzvf /usr/local containerd-1.7.14-linux-amd64.tar.gz    
curl -LO https://raw.githubusercontent.com/containerd/containerd/main/containerd.service    
sudo mkdir -p /usr/local/lib/systemd/system/    
sudo mv containerd.service /usr/local/lib/systemd/system/      
sudo mkdir -p /etc/containerd    
containerd config default | sudo tee /etc/containerd/config.toml   
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml    
sudo systemctl daemon-reload    
sudo systemctl enable --now containerd      

检查 Containerd 服务是否已启动并正在运行

systemctl status containerd

7.安装runc

curl -LO https://github.com/opencontainers/runc/releases/download/v1.1.12/runc.amd64    
sudo install -m 755 runc.amd64 /usr/local/sbin/runc    

8.安装cni插件

curl -LO https://github.com/containernetworking/plugins/releases/download/v1.5.0/cni-plugins-linux-amd64-v1.5.0.tgz    
sudo mkdir -p /opt/cni/bin    
sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.5.0.tgz    

9.安装 Kubeadm v1.30(撰写本指南时的最新版本是 1.30)

sudo apt-get update    
sudo apt-get install -y apt-transport-https ca-certificates curl gpg     

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/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.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list      


sudo apt-get update     
sudo apt-get install -y kubelet kubeadm kubectl    
sudo apt-mark hold kubelet kubeadm kubectl    

sudo systemctl enable --now kubelet    

kubeadm version    
kubelet --version    
kubectl version --client     

10.配置 crictl 以与 containerd 一起使用

sudo crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock     

11.在工作节点上执行这些步骤

在工作节点上执行上述所有步骤。


12.仅在主节点上初始化控制平面

我们将使用 Flannel 进行 Pod 网络。

--pod-network-cidr=10.244.0.0/16
选项是 Flannel 的必需项。不要更改该网络地址!

sudo kubeadm init --pod-network-cidr=10.244.0.0/16     

执行上述命令后,您将得到

kubeadm-join
命令。您将在工作节点上执行此命令,以便工作人员可以加入主节点。复制整个
kubeadm join
令牌并保存。

You can now join any number of machines by running the following on each node as root:     

  kubeadm join --token <token> <IP>:6443     

集群初始化完成后,请执行以下命令

sudo cp /etc/kubernetes/admin.conf $HOME/    
sudo chown $(id -u):$(id -g) $HOME/admin.conf     
export KUBECONFIG=$HOME/admin.conf     

13.为 Pod 网络安装 Flannel(在主节点上)

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

此时,请稍等一下,查看集群的状态。运行 kubectl get pods --all-namespaces 并查看它返回的内容。如果一切都显示正在运行,那么您就可以开始营业了!


如果忘记复制命令,可以在master节点执行以下命令重新生成加入命令

**kubeadm token create --print-join-command**

希望以上步骤能够帮助您快速在机器上搭建 Kubernetes 集群。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.