Kubernetes

Kubernetes 入门指南:从零开始理解容器编排

本文将带你了解 Kubernetes 的核心概念,包括 Pod、Service、Deployment 等基础组件,帮助你快速上手 K8s。

什么是 Kubernetes?

Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化容器化应用的部署、扩展和管理。它最初由 Google 设计,现在由云原生计算基金会(CNCF)维护。

核心概念

Pod

Pod 是 Kubernetes 中最小的可部署单元。一个 Pod 可以包含一个或多个容器,它们共享网络和存储资源。

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

Service

Service 为一组 Pod 提供稳定的网络端点。即使 Pod 被重新创建,Service 的 IP 地址也不会改变。

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - port: 80
      targetPort: 80
  type: ClusterIP

Deployment

Deployment 用于声明式地管理 Pod 和 ReplicaSet。它支持滚动更新和回滚。

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:1.25
          ports:
            - containerPort: 80

安装 Kubernetes

对于本地开发,推荐使用以下工具:

  • minikube - 在本地运行单节点 K8s 集群
  • kind - 使用 Docker 容器作为节点运行 K8s
  • k3s - 轻量级 Kubernetes 发行版

使用 minikube 快速开始

# 安装 minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# 启动集群
minikube start

# 验证安装
kubectl get nodes

常用 kubectl 命令

命令说明
kubectl get pods查看所有 Pod
kubectl get services查看所有 Service
kubectl describe pod <name>查看 Pod 详情
kubectl logs <pod-name>查看 Pod 日志
kubectl apply -f <file>应用配置文件
kubectl delete -f <file>删除资源

总结

Kubernetes 是现代云原生应用的基石。掌握其核心概念后,你就可以开始构建可扩展、高可用的容器化应用了。在后续文章中,我们将深入探讨更多高级主题。