kubernetes创建pod的yaml文件,参数说明
apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中
kind: Pod #指定创建资源的角色/类型
metadata: #资源的元数据/属性
name: web04-pod #资源的名字,在同一个namespace中必须唯一
labels: #设定资源的标签
k8s-app: apache
version: v1
kubernetes.io/cluster-service: "true"
annotations: #自定义注解列表
- name: String #自定义注解名字
spec:#specification of the resource content 指定该资源的内容
restartPolicy: Always #表明该容器一直运行,默认k8s的策略,在此容器退出后,会立即创建一个相同的容器
nodeSelector: #节点选择,先给主机打标签kubectl label nodes kube-node1 zone=node1
zone: node1
containers:
- name: web04-pod #容器的名字
image: web:apache #容器使用的镜像地址
imagePullPolicy: Never #[Always|Never|IfNotPresent]获取镜像的策略
command: ['sh'] #覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT
args: ["$(str)"] #对应Dockerfile中CMD参数
env: #指定容器中的环境变量
- name: str #变量的名字
value: "/etc/run.sh" #变量的值
resources: #资源管理
requests: #最小资源需求
cpu: 0.1 #设置可以使用CPU个数,两种方式,浮点数或者是整数+m,0.1=100m
memory: 32Mi #内存使用量
limits: #资源限制
cpu: 0.5
memory: 32Mi
ports:
- containerPort: 80
name: httpd
protocol: TCP
livenessProbe: #pod内容器健康检查的设置
httpGet: #通过httpget检查健康,返回200-399之间,则认为容器正常
path: / #URI地址
port: 80
#host: 127.0.0.1 #主机地址
scheme: HTTP
initialDelaySeconds: 180 #表明第一次检测在容器启动后多长时间后开始
timeoutSeconds: 5 #检测的超时时间
periodSeconds: 15 #检查间隔时间
#也可以用这种方法
#exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常
# command:
# - cat
# - /tmp/health
#也可以用这种方法
#tcpSocket: //通过tcpSocket检查健康
# port: number
lifecycle: #生命周期管理
postStart: #容器运行之前运行的任务
exec:
command:
- 'sh'
- 'yum upgrade -y'
preStop:#容器关闭之前运行的任务
exec:
command: ['service httpd stop']
volumeMounts:
- name: volume #挂载设备的名字,与volumes[*].name 需要对应
mountPath: /data #挂载到容器的某个路径下
readOnly: True
volumes: #定义一组挂载设备
- name: volume #定义一个挂载设备的名字
#meptyDir: {}
hostPath:
path: /opt #挂载设备类型为hostPath,路径为宿主机下的/opt,这里设备类型支持很多种
分享到:
相关推荐
下面是使用YAML文件创建Pod的一个具体例子: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod labels: app: my-app spec: containers: - name: nginx-container image: nginx:latest ports: - ...
通过"hello-world"示例,你不仅会学习到如何创建和管理Kubernetes资源,还会理解Kubernetes的核心概念,如Pod、Deployment和服务。此外,它还能帮助你熟悉`kubectl`命令行工具,这是日常操作Kubernetes集群的关键。 ...
在“k8s-二进制yaml.zip”这个压缩包中,我们很显然关注的是Kubernetes的YAML配置文件,这些文件是k8s集群中定义和管理对象(如Pods、Services、Deployments等)的主要方式。YAML是一种易读的数据序列化语言,特别...
在 kubeguide-example-master 中,我们可能会看到如何使用 YAML 文件定义 Deployment,以及如何通过命令行工具 kubectl 来应用这些配置。 5. **ReplicaSet 保证副本数量** ReplicaSet 确保集群中有指定数量的 Pod ...
在资源管理方面,Pod的配置文件中包含了关于CPU和内存的请求(requests)和限制(limits)。 例如,下面的Pod配置展示了如何为两个容器(db和wp)分别设定资源请求和限制: ```yaml apiVersion: v1 kind: Pod ...
在这个例子中,我们创建了一个名为`blackbox-exporter`的Deployment,使用了Prometheus官方的最新Blackbox Exporter镜像,并将`blackbox.yml`配置文件挂载到了容器内的`/etc/blackbox/config`目录。同时,我们创建了...
之后,定义一个Pod的YAML文件,其中包含节点选择器,最后使用`kubectl apply`命令应用这个配置。 第五个任务涉及Persistent Volume(PV)的创建。PV是集群中的存储资源,可以被多个Pod共享。在这里,创建了一个名为...
在这个例子中,我们使用 `vim` 编辑器创建了一个名为 `mypod.yaml` 的文件,内容定义了一个 Pod,包括其 `kind`(Pod)、`apiVersion`(v1)以及 `metadata` 和 `spec` 部分。 `metadata` 包含了 Pod 的元数据,如...
在这个例子中,我们使用以下命令来下载 CIS Kubernetes Benchmark 的配置文件: ``` wget -O kube-bench-control-plane.yaml https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job-master.yaml kc ...
在Kubernetes(k8s)生态系统中,YAML文件扮演着至关重要的角色,它们是部署、管理和配置集群的主要方式。本文将深入探讨YAML文件在Kubernetes中的应用以及相关文档的重要性。 首先,让我们理解YAML是什么。YAML...
`service-nodeport.yaml`文件通常用于创建一个NodePort类型的Service,这种类型可以让外部网络通过每个节点的特定端口来访问内部服务。配置文件可能包含如下内容: ```yaml apiVersion: v1 kind: Service metadata:...
- name: pod-with-second-annotation-container image: gcr.io/google_containers/pause:2.0 ``` 在这个例子中,Pod将不会使用默认的调度器`default-scheduler`,而是使用名为`my-scheduler`的自定义调度器进行...
在Kubernetes(简称k8s)中,YAML文件扮演着至关重要的角色,它是k8s集群中定义、部署和管理资源的主要方式。Kubernetes使用YAML(YAML Ain't Markup Language)这种易于读写的语言来描述各种对象,如Pods、Services...
接着,我们使用`vim`编辑器创建了一个名为`DS-nginx.yaml`的yaml文件,这是Kubernetes资源定义的标准格式。 2. **定义DaemonSet**: 在`DS-nginx.yaml`文件中,我们定义了一个DaemonSet,其中`apiVersion`是`apps/...
在例子中,`/root/kubesec-pod.yaml`这个文件被`kubesec`扫描,发现了一个问题:容器的安全上下文(`.securityContext`)允许特权模式(`privileged`)设置为`true`。这是一个潜在的安全风险,因为它允许容器以宿主机...
《Kubernetes 在行动》这本书是深入理解并实践 Kubernetes 集群管理的宝贵资源。书中涉及的代码示例旨在帮助读者更好地掌握 Kubernetes 的核心概念、工作原理以及实际部署技巧。这个压缩包“kubernetes-in-action-...
在Kubernetes中,Pod的IP地址不是固定的,因为Pod随时可能因为各种原因(如资源不足、节点故障等)而被创建或销毁,因此直接通过Pod IP进行服务访问是不稳定的。Service则为Pod提供了固定的虚拟IP地址(Cluster IP)...
在我们的例子中,"hello"应用将被部署为一个Pod,Pod是Kubernetes中最小的可部署单元,它可以包含一个或多个紧密相关的容器。 1. **创建Deployment** 我们将使用`Deployment`资源来定义应用的副本数量、镜像版本...
在实际应用中,我们可以通过`kubectl create secret`命令创建Secret,如上面的例子所示,从文件中读取数据并创建对应的Secret对象。然后,在Pod的定义中引用这些Secret,以将它们挂载到容器的适当路径下。 总结来说...