首页主机资讯CentOS如何快速安装K8S

CentOS如何快速安装K8S

时间2025-10-03 19:24:04发布访客分类主机资讯浏览886
导读:CentOS快速安装Kubernetes(K8S)步骤 1. 环境准备 在开始安装前,需完成以下基础配置,确保系统符合K8S安装要求: 关闭防火墙:systemctl stop firewalld && systemctl...

CentOS快速安装Kubernetes(K8S)步骤

1. 环境准备

在开始安装前,需完成以下基础配置,确保系统符合K8S安装要求:

  • 关闭防火墙
    systemctl stop firewalld &
        &
         systemctl disable firewalld
    
  • 关闭SELinux(避免权限问题):
    setenforce 0 &
        &
         sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
  • 禁用交换分区(K8S要求):
    swapoff -a &
        &
         sed -i '/swap/s/^/#/' /etc/fstab
    
  • 设置主机名与hosts文件(便于节点识别):
    hostnamectl set-hostname k8s-master  # Master节点主机名
    echo "192.168.1.100 k8s-master" >
        >
         /etc/hosts  # 替换为Master节点IP
    echo "192.168.1.101 k8s-node1" >
        >
         /etc/hosts  # 替换为Worker节点IP
    
  • 同步时间(避免集群时间偏差):
    yum install -y ntpdate &
        &
         ntpdate ntp.aliyun.com
    

以上步骤需在**所有节点(Master+Worker)**上执行。

2. 安装Docker(容器运行时)

K8S依赖容器运行时,推荐使用Docker(需CentOS 7及以上):

  • 添加Docker镜像源
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 安装Docker
    yum install -y docker-ce docker-ce-cli containerd.io
    
  • 启动Docker并设置开机自启
    systemctl start docker &
        &
         systemctl enable docker
    
  • 验证Docker安装
    docker --version  # 应输出Docker版本信息
    

Docker安装完成后,需配置镜像加速(可选但推荐):

mkdir -p /etc/docker &
    &
     tee /etc/docker/daemon.json <
    <
EOF
{

  "registry-mirrors": ["https://mirror.aliyuncs.com"]
}
    
EOF
systemctl daemon-reload &
    &
     systemctl restart docker

3. 安装Kubernetes核心组件

通过yum安装kubelet(节点代理)、kubeadm(集群初始化工具)、kubectl(集群管理命令行):

  • 添加Kubernetes镜像源
    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

- **安装组件**:  
```bash
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
  • 启动kubelet并设置开机自启
    systemctl enable kubelet &
        &
         systemctl start kubelet
    

注意:安装完成后,kubelet会自动启动,但需等待kubeadm init初始化集群后才会正常运行。

4. 初始化Master节点

Master节点是集群的控制中心,需执行以下命令初始化:

kubeadm init \
  --apiserver-advertise-address=192.168.1.100 \  # 替换为Master节点IP
  --pod-network-cidr=10.244.0.0/16 \           # 指定Pod网络CIDR(与后续网络插件匹配)
  --image-repository registry.aliyuncs.com/google_containers  # 使用国内镜像加速

初始化完成后,会输出类似以下信息(务必保存,用于Worker节点加入集群):

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

配置kubectl(用于管理集群):

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

验证Master节点状态

kubectl get nodes  # 应显示Master节点状态为"NotReady"(需安装网络插件后变为Ready)

5. 安装网络插件

K8S需要网络插件实现Pod间通信,推荐使用Flannel(轻量易用):

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

验证网络插件状态

kubectl get pods -n kube-system  # 应显示flannel相关Pod状态为"Running"

6. 添加Worker节点

在Worker节点上执行Master节点初始化时输出的kubeadm join命令(替换为实际Token和IP):

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

验证Worker节点是否加入
回到Master节点,执行:

kubectl get nodes  # 应显示所有节点状态为"Ready"

常见问题解决

  • kubelet无法启动:检查/var/log/messagesjournalctl -xe,常见原因是swap未禁用或镜像拉取失败(可配置国内镜像加速)。
  • kubeadm init失败:确保系统时间同步、网络畅通,或尝试添加--ignore-preflight-errors=all参数(仅用于测试环境)。
  • 网络插件无法部署:检查Pod网络CIDR是否与kubeadm init指定的--pod-network-cidr一致(如Flannel默认使用10.244.0.0/16)。

按照以上步骤,即可在CentOS上快速搭建一个基础的K8S集群。如需生产环境使用,建议补充高可用配置(如多Master节点)、存储插件(如NFS、Ceph)及安全认证(如TLS证书)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS如何快速安装K8S
本文地址: https://pptw.com/jishu/719008.html
如何卸载CentOS上的K8S centos crontab如何设置任务执行日志

游客 回复需填写必要信息