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集群
相关推荐
学嵌入式的小杨同学2 小时前
STM32 进阶封神之路(二十四):低功耗实战全攻略 —— 电池供电传感器节点(RTC 唤醒 + DHT11 采集 + 功耗优化)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
Java烘焙师2 小时前
AI编程实战:从零到一搭建全栈项目
java·架构·树莓派·ai实战
ai产品老杨2 小时前
破局算力碎片化:基于K8s调度与Docker多架构镜像的GB28181/RTSP异构AI视频底座实践
docker·架构·kubernetes
学嵌入式的小杨同学2 小时前
STM32 进阶封神之路(二十三):低功耗深度解析 —— 从睡眠模式到停机模式(底层原理 + 寄存器配置)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
returnthem2 小时前
Kubernetes集群架构组件全解
容器·架构·kubernetes
霁月的小屋2 小时前
深入浅出多包架构(Monorepo)
架构
洛洛呀。2 小时前
DDD架构为何拆分Entity层?从MVC到领域模型的演进之道
架构·mvc·ddd
前端不太难4 小时前
AI 原生架构:鸿蒙App的下一代形态
人工智能·架构·harmonyos
Fzuim4 小时前
从 LLM 接口到 Agent 接口:AI 融合系统的架构演进与未来趋势分析报告
人工智能·ai·重构·架构·agent·runtime
sayang_shao12 小时前
ARM架构运行模式学习笔记
arm开发·学习·架构