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