温馨提示×

Kubernetes在CentOS上的容器编排实践

小樊
55
2025-07-15 00:17:00
栏目: 智能运维

在CentOS上实现Kubernetes(K8S)容器编排涉及多个步骤,包括安装和配置Kubernetes集群、创建和管理容器等。以下是一个详细的指南:

准备工作

  1. 关闭防火墙

    sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service 
  2. 关闭SELinux

    sudo setenforce 0 sudo sed -i "s/SELINUXenforcing/SELINUXdisabled/g" /etc/selinux/config 
  3. 卸载Podman(如果存在)

    sudo yum remove podman 
  4. 配置Docker

    编辑 /etc/docker/daemon.json 文件,设置cgroup驱动为 systemd

    { "exec-opts": [ "native.cgroupdriversystemd" ], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } 

    重启Docker服务:

    sudo systemctl enable docker sudo systemctl daemon-reload sudo systemctl restart docker 

安装Kubernetes组件

在Master节点上安装Kubernetes组件:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools sudo yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ sudo yum install -y kubelet kubeadm kubectl sudo systemctl enable kubelet sudo systemctl start kubelet 

初始化Master节点

sudo kubeadm init --apiserver-advertise-address Master-IP --apiserver-cert-extra-sans Master-IP --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.5 --pod-network-cidr 10.244.0.0/16 

配置kubectl

将Master节点的配置文件复制到本地:

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

加入Worker节点

在Worker节点上安装Kubernetes组件:

sudo yum install -y kubelet kubeadm kubectl sudo systemctl enable kubelet sudo systemctl start kubelet 

加入Worker节点到Master节点:

sudo kubeadm join Master-IP:6443 --token token --discovery-token-ca-cert-hash sha256:hash 

部署Pod网络

选择一个Pod网络插件(如Flannel):

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

验证集群状态

检查Pod和Service的状态:

kubectl get pods kubectl get services 

创建和管理容器

使用YAML文件定义和部署应用程序:

apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 

应用Deployment文件:

kubectl apply -f nginx-deployment.yaml 

访问Nginx服务:

kubectl get svc 

以上步骤展示了如何在CentOS上成功部署一个Kubernetes集群,并进行容器编排和管理。根据具体需求,可以进一步配置和扩展集群功能。

0