当前位置: 首页 > article >正文

如何快速搭建K8s

搭建 Kubernetes(K8s)集群可以通过多种方式实现,具体选择取决于你的需求、环境和技术栈。以下是几种常见的快速搭建 Kubernetes 集群的方法:


1. 使用 Minikube 搭建单节点 Kubernetes 集群

Minikube 是一个轻量级的工具,适合在本地开发环境中快速搭建单节点的 Kubernetes 集群。

步骤:

  1. 安装 Minikube:

    • 下载并安装 Minikube:Minikube 官方安装指南
    • 例如,在 Linux 上:
      curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
      sudo install minikube-linux-amd64 /usr/local/bin/minikube
      
  2. 启动 Minikube:

    minikube start
    
  3. 验证集群状态:

    kubectl get nodes
    
  4. 访问 Kubernetes Dashboard(可选):

    minikube dashboard
    

2. 使用 kubeadm 搭建多节点 Kubernetes 集群

kubeadm 是 Kubernetes 官方推荐的工具,适合在生产环境中搭建多节点集群。

步骤:

  1. 准备环境:

    • 准备至少 2 台服务器(1 个 Master 节点,1 个或多个 Worker 节点)。
    • 确保所有节点上安装了 Docker 或 containerd。
  2. 安装 kubeadm、kubelet 和 kubectl:

    • 在所有节点上执行以下命令:
      sudo apt-get update && sudo apt-get install -y apt-transport-https curl
      curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | 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
      
  3. 初始化 Master 节点:

    • 在 Master 节点上执行:
      sudo kubeadm init --pod-network-cidr=10.244.0.0/16
      
    • 初始化成功后,会输出一个 kubeadm join 命令,用于将 Worker 节点加入集群。
  4. 配置 kubectl:

    • 在 Master 节点上执行:
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
  5. 安装网络插件(例如 Flannel):

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  6. 加入 Worker 节点:

    • 在 Worker 节点上执行 kubeadm join 命令(从 Master 节点初始化时获取)。
  7. 验证集群状态:

    kubectl get nodes
    

3. 使用 k3s 搭建轻量级 Kubernetes 集群

k3s 是 Rancher 推出的轻量级 Kubernetes 发行版,适合资源受限的环境。

步骤:

  1. 安装 k3s:

    • 在 Master 节点上执行:
      curl -sfL https://get.k3s.io | sh -
      
  2. 获取 kubeconfig 文件:

    sudo cat /etc/rancher/k3s/k3s.yaml
    
  3. 加入 Worker 节点:

    • 在 Worker 节点上执行:
      curl -sfL https://get.k3s.io | K3S_URL=https://<master-ip>:6443 K3S_TOKEN=<token> sh -
      
    • 其中 <master-ip> 是 Master 节点的 IP 地址,<token> 可以在 Master 节点上找到:
      sudo cat /var/lib/rancher/k3s/server/node-token
      
  4. 验证集群状态:

    kubectl get nodes
    

4. 使用托管服务(如 GKE、EKS、AKS)

如果你不想自己搭建和管理 Kubernetes 集群,可以使用云厂商提供的托管服务:

  • Google Kubernetes Engine (GKE): GKE 文档
  • Amazon Elastic Kubernetes Service (EKS): EKS 文档
  • Azure Kubernetes Service (AKS): AKS 文档

步骤:

  1. 登录云厂商控制台。
  2. 创建 Kubernetes 集群。
  3. 下载 kubeconfig 文件并配置 kubectl
  4. 使用 kubectl 管理集群。

5. 使用 Kind 在 Docker 中运行 Kubernetes

Kind(Kubernetes in Docker)是一个在 Docker 容器中运行 Kubernetes 的工具,适合本地开发和测试。

步骤:

  1. 安装 Kind:

    curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
    chmod +x ./kind
    sudo mv ./kind /usr/local/bin/kind
    
  2. 创建集群:

    kind create cluster
    
  3. 验证集群状态:

    kubectl get nodes
    

总结

工具/服务适用场景优点缺点
Minikube本地开发、单节点测试简单易用仅支持单节点
kubeadm生产环境、多节点集群官方推荐,灵活性高需要手动配置
k3s资源受限环境、边缘计算轻量级,部署简单功能相对简化
托管服务(GKE/EKS/AKS)生产环境、无需管理集群完全托管,高可用性需要付费
Kind本地开发、CI/CD 测试快速启动,基于 Docker仅适合测试环境

根据你的需求选择合适的工具,如果你有其他问题,请随时告诉我!


http://www.kler.cn/a/447157.html

相关文章:

  • Linux应用开发————mysql数据库表
  • 使用CNN模型训练图片识别(键盘,椅子,眼镜,水杯,鼠标)
  • 感受野如何计算?
  • 20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕
  • 电商数据流通的未来:API接口的智能化与自动化趋势
  • Springboot logback 日志打印配置文件,每个日志文件100M,之后滚动到下一个日志文件,日志保留30天(包含traceid)
  • es使用knn向量检索中numCandidates和k应该如何配比更合适
  • Intel-ECI之Codesys PLC + Ethercat 远端IO + Codesys IDE编程
  • Spring Cloud Sleuth 分布式链路追踪
  • 基于单片机的太阳能数据采集系统(论文+源码)
  • 深入探讨C++标准输入输出流:iostream
  • IDEA中使用Git
  • JWT令牌与微服务
  • 微服务核心概念介绍
  • 《网络对抗技术》Exp9 Web安全基础
  • 全面解析 Golang Gin 框架
  • 【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等
  • VSCode:Markdown插件安装使用 -- 最简洁的VSCode中Markdown插件安装使用
  • PCB生产设备日志采集
  • 学习Cookie 基础
  • 24届FPGA秋招经验分享
  • 【批量生成WORD和PDF文件】根据表格内容和模板文件批量创建word文件,一次性生成多个word文档和批量创建PDF文件
  • Mybatis中使用MySql触发器报错:You have an error in your SQL syntax; ‘DELIMITER $$
  • 【DevOps工具篇】PM(Project Management)之Redmine
  • linux zip unzip 命令的使用
  • LeetCode 844. 比较含退格的字符串 (C++实现)