温馨提示×

centos k8s怎么管理容器

小樊
40
2026-08-04 21:34:39
栏目: 智能运维

CentOS 上用 Kubernetes(k8s)管理容器,核心思路是:
k8s 不直接“管理容器”,而是通过 Pod → 控制器 → 集群调度 来管理。

下面按 从概念到实操 给你一个清晰说明。


一、CentOS + Kubernetes 的基本架构

在 CentOS 上,常见组合是:

CentOS
 └── Docker / containerd(容器运行时)
      └── Kubernetes(kubelet、kubeadm、kubectl)
           └── Pod(容器)

k8s 不关心你用的是什么容器,只关心 Pod


二、安装 Kubernetes(CentOS 7/8)

1️⃣ 关闭防火墙 & SELinux

systemctl disable firewalld
systemctl stop firewalld

setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2️⃣ 安装容器运行时(推荐 containerd)

yum install -y containerd
systemctl enable --now containerd

3️⃣ 安装 k8s 组件

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
EOF

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

三、初始化 Kubernetes 集群

Master 节点

kubeadm init \
  --pod-network-cidr=10.244.0.0/16

执行完成后:

mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

安装网络插件(Flannel)

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

四、k8s 如何“管理容器”(重点)

✅ 1. Pod 是最小管理单位

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx
    image: nginx:1.25

创建:

kubectl apply -f pod.yaml

查看:

kubectl get pods
kubectl describe pod nginx-pod

✅ 2. 用 Deployment 管理容器(推荐)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
kubectl apply -f deployment.yaml
kubectl get pods

✅ 自动完成:

  • 容器重启
  • 扩缩容
  • 滚动更新

✅ 3. 扩容 / 缩容

kubectl scale deployment nginx-deploy --replicas=5

✅ 4. 更新容器镜像

kubectl set image deployment/nginx-deploy nginx=nginx:1.26

✅ 5. 查看容器日志

kubectl logs pod-name
kubectl logs -f pod-name

✅ 6. 进入容器

kubectl exec -it pod-name -- /bin/bash

五、k8s vs Docker 管理容器的区别

对比项 Docker Kubernetes
管理对象 容器 Pod
自动重启 有限 自动
扩缩容 手动 自动
高可用
适合 单机 集群

六、常见命令速查

kubectl get nodes
kubectl get pods -A
kubectl get deployment
kubectl delete pod pod-name
kubectl describe pod pod-name

七、适合你的下一步

你可以告诉我:

  • ✅ 是 单机测试 还是 生产集群
  • ✅ 用 Docker 还是 containerd
  • ✅ 是否要 对外暴露服务(Ingress / NodePort)

我可以:

  • 给你 完整生产级 k8s 部署方案
  • 一步步带你从 0 搭 CentOS + k8s
  • 或直接 对比 Docker Compose vs k8s

你现在是 刚接触 k8s,还是已经在用但遇到问题?

0