
k8s pod
Kubernetes中的Pod是最小的可调度单元,它包含一个或多个容器,共享网络和存储资源。
下面是一个示例的Kubernetes Pod的YAML文件,并附有每个关键配置字段的注释说明:
apiVersion: v1
kind: Pod
metadata:
name: my-pod # Pod的名称
labels:
app: my-app # Pod的标签
spec:
containers:
- name: my-container # 容器名称
image: my-image # 容器镜像
ports:
- containerPort: 80 # 容器端口
restartPolicy: Always # Pod的重启策略这个示例的Pod包含了以下字段和含义的注释说明:
这个示例中的Pod定义了一个名为my-pod的Pod对象,其中包含了一个名为my-container的容器,使用了my-image镜像,并将容器的端口配置为80。Pod的标签为app: my-app,通过标签可以对Pod进行选择和标识。此外,Pod的重启策略设置为Always,表明在任何情况下都会自动重启Pod。

k8s service
Kubernetes(K8s)的Service对象是用于提供稳定网络访问方式的抽象,用于暴露部署在多个Pod之上的应用服务。
下面是一个示例的Kubernetes Service的YAML文件,并附有每个关键配置字段的注释说明:
apiVersion: v1
kind: Service
metadata:
name: my-service # Service的名称
spec:
selector:
app: my-app # 选择器匹配的标签
ports:
- protocol: TCP # 端口协议
port: 80 # Service监听的端口号
targetPort: 8080 # 将流量转发到的目标容器端口号
type: ClusterIP # Service的类型这个示例的Service包含了以下字段和含义的注释说明:
这个示例中的Service定义了一个名为my-service的Service对象,通过选择器app: my-app与具有一样标签的Pod进行关联。Service监听端口号为80,并将流量转发到Pod中的容器端口8080。Service的类型设置为ClusterIP,表明Service只能在集群内部访问。根据实际需求,可以根据需要更改Service的类型和端口配置。

k8s deployment
Kubernetes(K8s)的Deployment对象是用于定义和管理应用程序的副本集的资源对象。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment # Deployment的名称
labels:
app: my-app # Deployment的标签
spec:
replicas: 3 # 副本数量
selector:
matchLabels:
app: my-app # 选择器匹配的标签
template:
metadata:
labels:
app: my-app # Pod模板的标签
spec:
containers:
- name: my-container # 容器名称
image: my-image # 容器镜像
ports:
- containerPort: 80 # 容器端口
k8s statefulset
Kubernetes StatefulSets是一种用于管理有状态应用的控制器。与Deployment不同,StatefulSets为每个Pod实例分配唯一的标识符和稳定的网络标识。
以下是一个示例的Kubernetes StatefulSet的YAML文件,并附有注释来标记核心字段:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-statefulset # StatefulSet的名称
spec:
serviceName: my-service # 关联的Service的名称
replicas: 3 # 副本数量
selector:
matchLabels:
app: my-app # 匹配的标签
template:
metadata:
labels:
app: my-app # Pod模板的标签
spec:
containers:
- name: my-container # 容器名称
image: my-image # 容器镜像
ports:
- containerPort: 8080 # 容器监听的端口号
volumeMounts:
- name: data-volume # 挂载的数据卷名称
mountPath: /data # 挂载路径
volumeClaimTemplates:
- metadata:
name: data-volume # 数据卷声明的名称
spec:
accessModes:
- ReadWriteOnce # 访问模式
resources:
requests:
storage: 1Gi # 存储资源的请求量在这个示例的StatefulSet的YAML文件中,我们标注了以下核心字段的注释:

k8s configmap
Kubernetes的ConfigMaps对象用于存储应用程序的配置数据,以便可以在容器中以不同的方式访问和使用这些配置。
以下是ConfigMaps的一些关键特点和用途的简要介绍:

k8s secrets
Kubernetes的Secrets对象用于安全地存储和管理敏感信息,例如密码、API密钥和证书等
以下是Kubernetes Secrets的要点介绍:

k8s daemonsets
Kubernetes的DaemonSet对象用于在集群中的每个节点上运行一个Pod副本,确保每个节点都有一个该Pod的实例。它一般用于在集群中的每个节点上部署守护进程或系统级任务,例如日志收集、监控代理等。
以下是关于Kubernetes DaemonSet的要点介绍:

k8s job
Kubernetes(K8s)中的Job对象是一种用于管理批处理任务的资源类型。它用于创建和管理只运行一次或按计划定期运行的任务。Job对象确保任务成功完成,并可以选择性地保留任务的历史记录。
下面是对Kubernetes Job对象的简单介绍:

k8s cronjobs
当需要在预定时间或间隔执行任务时,Kubernetes中的CronJob对象是一个超级有用的资源类型。CronJob允许你按照类似于Cron表达式的方式定义作业的调度规则。下面是对Kubernetes CronJob对象的简单介绍:
通过使用CronJob对象,Kubernetes提供了一种方便的方式来调度和管理按计划运行的任务。无论是定期备份、数据清理、定时报告还是其他周期性任务,CronJob都可以满足这些需求。

k8s ingress
Kubernetes中的Ingress对象是一种用于管理集群中HTTP和HTTPS流量的资源类型。它充当着入口点,将外部流量路由到集群内部的服务。Ingress对象提供了一种灵活的方式来配置和管理路由规则、负载均衡、SSL/TLS终止等功能。以下是对Kubernetes Ingress对象的简要介绍:
通过使用Ingress对象,Kubernetes提供了一种方便且强劲的方式来管理集群中的入口流量。Ingress对象可以聚焦管理路由规则,并提供了灵活的配置选项来满足不同的流量管理需求。
我最近在编写《微服务治理指南专栏》里面涉及到许多微服务各种应用架构场景和案例分析以及微服务在k8s架构下如何治理的方案,感兴趣的同学可以关注专栏进一步了解,当前处于早鸟价超级优惠。

专栏
微服务治理指南
作者:SuperOps
19.9币
3人已购
查看