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 node
      
      NAME     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前缀运行,以获得必要的权限。
  • 检查网络连接,确保所有节点之间能够互相访问。
  • 如果遇到任何问题,请检查日志文件和输出信息,以便进行故障排除。
  • 安全性考虑:在生产环境中,强烈建议使用更安全的方法来处理敏感信息,如证书和密钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值