1. Pod(Pod):
Pod 是 Kubernetes 最小的可部署单元,它可以包含一个或多个容器。Pod 提供了一种封装容器的方式,使其共享网络、存储等资源。Pod 通常用于运行一个应用程序或服务。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: nginx
2. ReplicationController(ReplicaSet、Deployment):
ReplicationController 用于确保指定数量的 Pod 始终在运行。ReplicaSet 是 ReplicationController 的升级版本,而 Deployment 提供了对 Pod 的声明性管理。
apiVersion: apps/v1
kind: Deployment
metadata:
name: mydeployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: mycontainer
image: nginx
3. Service(ClusterIP、NodePort、LoadBalancer):
Service 定义了一组 Pod,并提供对这组 Pod 的稳定访问。可以通过不同的 Service 类型来实现不同的访问方式。
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
4. Namespace(Namespace):
Namespace 是一种将集群划分为多个虚拟集群的方式。它可用于在集群中创建隔离的工作空间,以避免资源冲突。
apiVersion: v1
kind: Namespace
metadata:
name: mynamespace
5. ConfigMap 和 Secret:
ConfigMap 用于存储配置数据,而 Secret 用于存储敏感数据。它们可以被挂载到 Pod 中,以提供配置和密钥等信息。
apiVersion: v1
kind: ConfigMap
metadata:
name: myconfigmap
data:
key1: value1
key2: value2
6. PersistentVolume 和 PersistentVolumeClaim:
PersistentVolume(PV)和 PersistentVolumeClaim(PVC)用于提供持久化存储。PV 表示物理存储资源,而 PVC 是对 PV 的请求。
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /mnt/data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
这只是 Kubernetes 中一小部分对象的例子。还有许多其他对象,如 DaemonSet、StatefulSet、Job、CronJob、Ingress 等,用于表示不同类型的工作负载和服务。这些对象可以通过 YAML 或 JSON 文件定义,然后使用 kubectl 工具进行创建、更新和删除。
转载请注明出处:http://www.zyzy.cn/article/detail/9691/Kubernetes