Kubernetes核心概念详解:Namespace、Pod、Deployment、PV和PVC原创
# Kubernetes中的Namespace、Pod、Deployment、PV和PVC详解
# Namespace
Namespace(命名空间)用于在同一个Kubernetes集群中将资源进行逻辑上的隔离。它类似于Linux中的命名空间,可以在一个集群中创建多个命名空间,每个命名空间下可以有一组独立的资源。
- 创建命名空间
kubectl create namespace <namespace-name>
1 - 查看所有命名空间
kubectl get namespaces
1 - 删除命名空间
kubectl delete namespace <namespace-name>
1
命名空间通常用于不同环境(如开发、测试、生产)或不同项目之间的资源隔离。
# Pod
Pod是Kubernetes中最小的部署单元,包含一个或多个容器(通常是Docker容器)。Pod中的容器共享网络和存储,并且始终在同一个Node上调度和运行。
- 创建Pod(YAML文件)
apiVersion: v1 kind: Pod metadata: name: my-pod namespace: default spec: containers: - name: my-container image: nginx
1
2
3
4
5
6
7
8
9kubectl apply -f pod.yaml
1 - 查看所有Pod
kubectl get pods
1 - 描述Pod
kubectl describe pod <pod-name>
1 - 删除Pod
kubectl delete pod <pod-name>
1
# Deployment
Deployment是Kubernetes中用于管理Pod的声明式定义。它可以确保集群中始终有指定数量的Pod副本在运行,并且可以实现滚动更新和回滚。
- 创建Deployment(YAML文件)
apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment namespace: default spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-container image: nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18kubectl apply -f deployment.yaml
1 - 查看所有Deployments
kubectl get deployments
1 - 描述Deployment
kubectl describe deployment <deployment-name>
1 - 更新Deployment
kubectl apply -f deployment.yaml
1 - 删除Deployment
kubectl delete deployment <deployment-name>
1
# PV(Persistent Volume)
Persistent Volume(持久卷)是Kubernetes集群中的一块存储,可以由管理员预先配置,也可以通过动态供应器自动创建。PV是一个集群资源,与Pod独立。
- 创建PV(YAML文件)
apiVersion: v1 kind: PersistentVolume metadata: name: my-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data"
1
2
3
4
5
6
7
8
9
10
11kubectl apply -f pv.yaml
1 - 查看所有PVs
kubectl get pv
1 - 描述PV
kubectl describe pv <pv-name>
1 - 删除PV
kubectl delete pv <pv-name>
1
# PVC(Persistent Volume Claim)
Persistent Volume Claim(持久卷声明)是用户请求PV资源的方式。PVC可以请求特定大小和访问模式的存储,Kubernetes会找到满足要求的PV并将其绑定到PVC上。
- 创建PVC(YAML文件)
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
1
2
3
4
5
6
7
8
9
10kubectl apply -f pvc.yaml
1 - 查看所有PVCs
kubectl get pvc
1 - 描述PVC
kubectl describe pvc <pvc-name>
1 - 删除PVC
kubectl delete pvc <pvc-name>
1
# 总结
- Namespace:用于逻辑上隔离资源。
- Pod:Kubernetes中最小的部署单元,包含一个或多个容器。
- Deployment:用于管理Pod的声明式定义,支持滚动更新和回滚。
- PV(Persistent Volume):集群中的存储资源,管理员预先配置或动态供应。
- PVC(Persistent Volume Claim):用户请求PV资源的方式。
上次更新: 8/28/2024
- 01
- GPT分区使用 parted 扩展分区的操作流程 原创08-28
- 02
- VictoriaMetrics 集群版安装与配置 原创08-24
- 03
- Kubernetes (k8s) 相关名词详解 原创06-27