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

Kubernetes 集群初步部署

Kubernetes 集群初步部署

目标

本手册旨在指导您在多台虚拟机上部署一个基础的Kubernetes集群,并安装必要的工具和组件。

准备工作
  • 确保所有虚拟机已经准备好,并且具有足够的资源来运行Kubernetes集群。
  • 虚拟机操作系统版本一致,推荐使用Red Hat 8.x。
  • 确保所有虚拟机之间网络互通。
  • 推荐主机配置:
主机ip配置
master192.168.3.1954核,6g内存,40g硬盘
node1192.168.3.1962核,2g内存,20g硬盘
node2192.168.3.1972核,2g内存,20g硬盘
步骤
  1. 修改主机名

    • 登录到每台虚拟机。
    • 使用hostnamectl命令设置主机名。
      hostnamectl set-hostname master
      hostnamectl set-hostname node1
      hostnamectl set-hostname node2
      
  2. 配置阿里源并更新包

    • 在每台虚拟机上编辑/etc/yum.repos.d/aliyun.repo文件。
      sudo vim /etc/yum.repos.d/aliyun.repo
      
      添加以下内容:
      [baseos]
      name=CentOS-$releasever-BaseOS-mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
      gpgcheck=0
      enabled=1[appstream] 
      name=CentOS-$releasever-AppStream-mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
      gpgcheck=0
      enabled=1
      
    • 更新包缓存。
      sudo dnf makecache
      sudo dnf update -y
      
  3. 配置SSH免密登录

    • 在Master节点上生成SSH密钥。
      ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
      
    • 复制公钥到所有节点。
      ssh-copy-id master
      ssh-copy-id node1
      ssh-copy-id node2
      
    • 测试SSH连接。
      ssh node1
      
  4. 关闭交换分区

    • 在所有节点上执行以下命令。
      swapoff -a
      echo "vm.swappiness = 0" >> /etc/sysctl.conf
      sysctl -p
      
  5. 关闭防火墙

    • 在所有节点上执行以下命令。
      systemctl disable firewalld
      systemctl stop firewalld
      
  6. 修改内核参数

    • 在所有节点上执行以下命令。
      modprobe br_netfilter
      echo "modprobe br_netfilter" >> /etc/profile
      tee /etc/sysctl.d/k8s.conf << EOF
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
      sysctl --system
      
  7. 配置集群时间同步

    • 在所有节点上安装并启用chrony服务。
      sudo dnf install -y chrony
      systemctl start chronyd
      systemctl enable chronyd
      
  8. 配置DNF仓库

    • 在所有节点上执行以下命令。
      sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
      sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
  9. 安装Docker

    • 在所有节点上执行以下命令,registry-mirrors此处替换为国内镜像源,如阿里
      sudo dnf install -y docker-ce-20.10.0 docker-ce-cli-20.10.0 containerd.io
      systemctl start docker
      systemctl enable docker
      docker version
      cat > /etc/docker/daemon.json << EOF
      {"registry-mirrors": ["https://your.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
      }
      EOF
      systemctl daemon-reload
      systemctl restart docker
      
  10. 添加主节点到hosts文件

    • 在所有节点上执行以下命令。
      echo "192.168.3.195 cluster-endpoint" >> /etc/hosts
      
  11. 安装Kubernetes

    • 在所有节点上创建Kubernetes的YUM仓库。
      cat <<EOF > /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组件。
      sudo dnf install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
      systemctl enable kubelet
      
  12. 安装CoreDNS

    • 在所有节点上执行以下命令。
      docker pull coredns/coredns:1.8.4
      docker tag coredns/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4
      
  13. 初始化Kubernetes集群(仅在Master节点执行)

    • 执行以下命令。
      kubeadm init \
      --apiserver-advertise-address=192.168.3.195 \
      --control-plane-endpoint=cluster-endpoint \
      --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=172.20.0.0/16
      
    • 初始化完成后,根据提示信息执行kubeadm join命令加入Worker节点。
    • kubeconfig文件复制到用户目录。
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
  14. 复制kubeconfig文件到node节点

    • 使用SSH将kubeconfig文件复制到Worker节点。
      ssh root@node1 'mkdir -p /root/.kube'
      ssh root@node2 'mkdir -p /root/.kube'
      scp /etc/kubernetes/admin.conf root@node1:/root/.kube/config
      scp /etc/kubernetes/admin.conf root@node2:/root/.kube/config
      ssh root@node1 'chmod 600 /root/.kube/config'
      ssh root@node2 'chmod 600 /root/.kube/config'
      
  15. 验证节点状态

    • 在Master节点上执行以下命令。
      kubectl get nodeNAME     STATUS   ROLES                  AGE     VERSION
      master   Ready    control-plane,master   3d21h   v1.23.6
      node1    Ready    <none>                 3d21h   v1.23.6
      node2    Ready    <none>                 3d21h   v1.23.6
      
  16. 安装Kuboard图形化工具(仅在Master节点执行)

    • 安装Kuboard。
      kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
      
    • 访问Kuboard。
      http://<master-ip>:30080
      
      输入初始用户名和密码登录。
      • 用户名:admin
      • 密码:Kuboard123

注意事项

  • 确保所有命令都以sudo前缀运行,以获得必要的权限。
  • 检查网络连接,确保所有节点之间能够互相访问。
  • 如果遇到任何问题,请检查日志文件和输出信息,以便进行故障排除。
  • 安全性考虑:在生产环境中,强烈建议使用更安全的方法来处理敏感信息,如证书和密钥。
http://www.lryc.cn/news/436905.html

相关文章:

  • 从源码到成品:直播美颜SDK与主播美颜工具的开发全流程
  • AMD EPYC 9004服务器内存配置深度分析:为何全通道填充是关键?
  • redis的事务与管道有什么不同?
  • Redis 配置
  • 【Qt笔记】QTableWidget控件详解
  • 高低压配电系统中电弧光的危害有多大?
  • 安宝特案例 | AR如何大幅提升IC封装厂检测效率?
  • QGIS 如何连接空间库,并实时编辑空间表?编辑后库表如何刷新,保证是最新数据?
  • CleanClip for mac(苹果电脑剪切板管理器)
  • 嵌入式栈溢出怎么办?
  • 工厂安灯系统在优化生产流程上的优势
  • 【Kubernetes】(K8S)彻底卸载详细教程
  • web基础之文件上传
  • 解决“找不到msvcp140.dll无法继续执行代码”问题:技术困境与解决方案
  • 智能赋能,Vatee万腾平台助力企业升级新高度
  • ceph-radosgw 手动安装教程以及安装问题解决办法
  • PageRank算法
  • YOLOv8改进 | 模块缝合 | C2f 融合Self-Calibrated Convolutions丰富特征图【CVPR2020】
  • 跨境反向代购淘宝京东商品系统的商品价格详情等数据如何轻松自动化获取?
  • 初始爬虫5
  • 深度盘点:2024年企业最喜欢用的WMS仓库管理系统有哪些?
  • qt如何通过特定字符将字符串拆分写入输入?
  • 结构体实现位段
  • 刷题DAY35
  • LVS--负载均衡调度器
  • windows@共享网络共享打印机@局域网内远程调用打印机打印
  • sql格式化工具
  • [Python办公]常用Python数据采集爬虫技术对比
  • 相机光学(三十七)——自动对焦原理
  • Go语言现代web开发05 指针和结构体