Kubernetes 核心概念与一次部署实战

举报
yd_270949443 发表于 2026/11/02 14:57:39 2026/11/02
【摘要】 ## 一、Kubernetes 是什么Kubernetes(K8s)是容器编排平台,解决"把一堆容器稳定地跑在集群上"的问题:自动调度、扩缩容、自愈、服务发现、滚动发布。## 二、整体架构- 控制面:API Server(唯一入口)、etcd(存集群状态)、Scheduler(把 Pod 调度到节点)、Controller Manager(维持期望状态)。- 工作节点:kubelet(管理本...

## 一、Kubernetes 是什么

Kubernetes(K8s)是容器编排平台,解决"把一堆容器稳定地跑在集群上"的问题:自动调度、扩缩容、自愈、服务发现、滚动发布。

## 二、整体架构

- 控制面:API Server(唯一入口)、etcd(存集群状态)、Scheduler(把 Pod 调度到节点)、Controller Manager(维持期望状态)。
- 工作节点:kubelet(管理本节点 Pod)、kube-proxy(Service 网络)、容器运行时(如 containerd)。

## 三、核心对象

- Pod:最小调度单元,一个或多个共享网络/存储的容器。
- Deployment:管理 Pod 副本与滚动更新。
- Service:为一组 Pod 提供稳定访问入口(ClusterIP / NodePort / LoadBalancer)。
- Ingress:七层入口,按域名/路径转发。
- ConfigMap / Secret:配置与敏感信息注入。
- Namespace:逻辑隔离。

## 四、一次部署实战

下面用一个 Nginx 示例,声明 3 副本 Deployment 加一个 Service:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-demo
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-demo
  template:
    metadata:
      labels:
        app: nginx-demo
    spec:
      containers:
      - name: nginx
        image: nginx:1.27
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: "100m"
            memory: "128Mi"
          limits:
            cpu: "500m"
            memory: "256Mi"
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-demo
spec:
  selector:
    app: nginx-demo
  ports:
  - port: 80
    targetPort: 80
  type: ClusterIP
```

常用命令:

```bash
kubectl apply -f deploy.yaml
kubectl get pods -o wide
kubectl rollout status deploy/nginx-demo
kubectl scale deploy/nginx-demo --replicas=5
kubectl describe pod <pod>   # 排障
kubectl logs <pod>           # 看日志
```

## 五、最佳实践

- 一定设置 resources 的 requests/limits,避免资源争抢与 OOM。
- 配置 readiness/liveness 探针做健康检查。
- 镜像打固定 tag,不要用 latest。
- 无状态服务用 Deployment,配合滚动更新与 kubectl rollout undo 回滚。
- 配置与密钥走 ConfigMap/Secret,不写进镜像。
- 生产环境用 Namespace + RBAC + NetworkPolicy 做隔离与最小权限。

结语:掌握 Pod / Deployment / Service 三件套,加上 YAML 声明式管理,就能覆盖大部分日常场景。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。