3台4核16G机器搭建K8S集群

在三台具有4核16GB内存的机器上安装Kubernetes(K8s)集群涉及到几个关键步骤。我们将一个机器设为主节点(Master)和两个工作节点(Worker)。以下是详细步骤:

1. 系统环境准备(在所有机器上执行)

更新系统
bash 复制代码
sudo yum update -y
关闭Swap

Kubernetes需要关闭Swap以正常工作。

bash 复制代码
sudo swapoff -a

要永久禁用Swap,编辑 /etc/fstab 文件,注释掉swap相关的行。

关闭SELinux

SELinux可能会与Kubernetes组件发生冲突。

bash 复制代码
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
关闭防火墙
bash 复制代码
sudo systemctl stop firewalld
sudo systemctl disable firewalld
设置主机名

为每台机器设置一个唯一的主机名。

bash 复制代码
sudo hostnamectl set-hostname <master-or-worker-node-name>
更新主机文件

确保 /etc/hosts 文件包含所有节点的正确的主机名和IP地址。

2. 安装Docker(在所有机器上执行)

安装Docker
bash 复制代码
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动并启用Docker
bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker

3. 安装Kubernetes(在所有机器上执行)

添加Kubernetes仓库
bash 复制代码
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装Kubernetes组件
bash 复制代码
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
启动kubelet
bash 复制代码
sudo systemctl enable --now kubelet

4. 初始化Kubernetes集群(只在主节点上执行)

初始化集群
bash 复制代码
sudo kubeadm init --pod-network-cidr=192.168.0.0/16

记下 kubeadm join 命令的输出,将用于加入工作节点。

设置kubectl(只在主节点上执行)
bash 复制代码
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件(只在主节点上执行)

例如,安装Calico。

bash 复制代码
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

5. 将工作节点加入集群(在每个工作节点上执行)

使用在初始化主节点时提供的 kubeadm join 命令来加入工作节点。

6. 验证集群状态(在主节点上执行)

bash 复制代码
kubectl get nodes

所有节点的状态应该是 Ready。

这样,你的Kubernetes集群就建立完成了。根据你的具体需求,可以在此基础上部署各种应用。记得定期检查和维护集群以确保其安全和高效运行。

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun5 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿5 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl5 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、5 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove5 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21