Kubernetes集群部署详细步骤(CentOS 7.8 + Docker 1.13 + Kubernetes 1.5.2)[二]

一、环境准备

  1. 服务器规划

    角色

    IP地址

    配置要求

    Master

    192.168.118.18

    2核CPU/2G内存

    Node01

    192.168.118.19

    2核CPU/2G内存

    Node02

    192.168.118.20

    2核CPU/2G内存

  2. 系统初始化

    bash

    bash 复制代码
    # 关闭SELinux
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    
    # 关闭防火墙
    systemctl stop firewalld && systemctl disable firewalld
    
    # 禁用Swap
    swapoff -a
    sed -i '/swap/s/^/#/' /etc/fstab
    
    # 配置内核参数
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    EOF
    sysctl --system

二、Docker安装(1.13版本)

  1. 配置YUM源

    bash

    bash 复制代码
    # 安装依赖
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    # 添加Docker源
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 安装指定版本
    yum install -y docker-ce-1.13.1 docker-ce-cli-1.13.1 containerd.io
    
    # 启动服务
    systemctl start docker && systemctl enable docker
    
    # 验证版本
    docker version | grep '1.13.1'
  2. 配置镜像加速

    bash

    javascript 复制代码
    cat > /etc/docker/daemon.json << EOF
    {
      "registry-mirrors": ["https://hub-mirror.c.163.com"],
      "exec-opts": ["native.cgroupdriver=systemd"]
    }
    EOF
    systemctl restart docker

三、Kubernetes组件安装

  1. 添加K8S源

    bash

    ini 复制代码
    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    EOF
  2. 安装指定版本

    bash

    bash 复制代码
    # 安装kubeadm/kubelet/kubectl 1.5.2
    yum install -y kubelet-1.5.2 kubeadm-1.5.2 kubectl-1.5.2
    
    # 启动服务
    systemctl enable kubelet && systemctl start kubelet

四、集群初始化(Master节点)

  1. 拉取镜像

    bash

    bash 复制代码
    # 手动拉取K8S基础镜像
    images=(kube-proxy:v1.5.2 kube-scheduler:v1.5.2 
            kube-controller-manager:v1.5.2 kube-apiserver:v1.5.2 
            etcd:3.0.18 pause:3.0)
    
    for imageName in ${images[@]}; do
      docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
      docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
      docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    done
  2. 初始化集群

    bash

    bash 复制代码
    kubeadm init --kubernetes-version=v1.5.2 \
      --pod-network-cidr=10.244.0.0/16 \
      --service-cidr=10.96.0.0/12 \
      --ignore-preflight-errors=Swap
    
    # 配置kubectl
    mkdir -p $HOME/.kube
    cp /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config

五、Node节点加入集群

  1. 执行Master生成的加入命令

    bash

    sql 复制代码
    kubeadm join 192.168.118.18:6443 \
      --token xxxxx.xxxxxxxxxx \
      --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

六、部署网络插件(Flannel)

bash

bash 复制代码
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.7.1/Documentation/kube-flannel.yml

七、集群验证

bash

csharp 复制代码
# 查看节点状态
kubectl get nodes

# 查看系统组件状态
kubectl get pods -n kube-system

# 验证DNS功能
kubectl run busybox --image=busybox:1.28 --rm -it -- sh
nslookup kubernetes.default

注意事项

  1. Kubernetes 1.5.2为老旧版本,无官方安全支持,生产环境建议使用1.23+版本
  2. Docker 1.13需搭配cri-dockerd适配器才能在K8S 1.24+中使用
  3. 如需高可用部署,需额外配置负载均衡和etcd集群
相关推荐
卷福同学4 小时前
#去深圳了~
后端·面试·架构
echoyu.13 小时前
微服务-网络模型与服务通信方式openfein
网络·spring cloud·微服务·架构·openfein
ISACA中国14 小时前
《第四届数字信任大会》精彩观点:腾讯经验-人工智能安全风险之应对与实践|从十大风险到企业级防护架构
人工智能·安全·架构·漏洞案例·大模型越狱·企业级防护
YC运维16 小时前
LNMP架构(分离部署)PHP与数据库交互示例
数据库·架构·php
小陈又菜18 小时前
【计算机组成入门到入土】解码计算机:冯·诺依曼架构如何主宰你的每一次点击
架构·计算机组成原理
Tadas-Gao19 小时前
华为OmniPlacement技术深度解析:突破超大规模MoE模型推理瓶颈的创新设计
人工智能·架构·大模型·llm
承悦赋19 小时前
微服务通信:5大消息队列横向对比
微服务·架构·kafka·rabbitmq·rocketmq
boonya20 小时前
云原生微服务中间件选型
微服务·云原生·架构
上园村蜻蜓队长21 小时前
ARM芯片架构之CoreSight ROM Table 的SoC设计思路
arm开发·架构