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集群
相关推荐
何时梦醒1 小时前
React + TypeScript + Vite 实战:从零构建 Color Picker 应用
前端·javascript·架构
张忠琳3 小时前
【NVIDIA】k8s-device-plugin v0.19.3 标签管理模块 (internal/lm) 深度分析之六
云原生·容器·架构·kubernetes·nvidia
中微极客5 小时前
边缘AI赋能可穿戴:实时生物信号处理架构与工程实践
人工智能·架构·信号处理
qq_454245035 小时前
认知自举:LLM自我指令泛化的三层逻辑
人工智能·架构·prompt
XUHUOJUN5 小时前
Azure Stack Hub 存储服务:托管磁盘、Blob/Table/Queue 与容量管理(下篇)
架构·azure stack
XUHUOJUN6 小时前
Azure Stack Hub 存储服务:从 S2D 物理栈到租户服务全景(上篇)
架构·azure stack
上海云盾商务经理杨杨6 小时前
WAF+DDoS 双层防护架构!解决应用层混合攻击漏杀误杀问题
架构·ddos
马优晨7 小时前
pring Boot + MyBatis + Redis 项目分层架构详解 —— 各层职责、关系与工作流程
架构·mybatis·spring项目分层架构详解·spring项目架构详解·spring各层职责·spring关系与工作流程
上海安当技术8 小时前
老系统零改造接入:旁路代理统一认证实战
java·servlet·架构·kubernetes·jenkins
qq_454245038 小时前
.clinerules 系统提示词价值评判
人工智能·架构