kubernetes创建pod的yaml文件,参数说明
apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中
kind: Pod #指定创建资源的角色/类型
metadata: #资源的元数据/属性
name: web04-pod #资源的名字,在同一个namespace中必须唯一
labels: #设定资源的标签,详情请见http://blog.csdn.net/liyingke112/article/details/77482384
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,每次启动时检查和更新(从registery)images的策略,
# Always,每次都检查
# Never,每次都不检查(不管本地是否有)
# IfNotPresent,如果本地有就不检查,如果没有就拉取
command: ['sh'] #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT
args: ["$(str)"] #启动容器的命令参数,对应Dockerfile中CMD参数
env: #指定容器中的环境变量
- name: str #变量的名字
value: "/etc/run.sh" #变量的值
resources: #资源管理,请求请见http://blog.csdn.net/liyingke112/article/details/77452630
requests: #容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
cpu: 0.1 #CPU资源(核数),两种方式,浮点数或者是整数+m,0.1=100m,最少值为0.001核(1m)
memory: 32Mi #内存使用量
limits: #资源限制
cpu: 0.5
memory: 32Mi
ports:
- containerPort: 80 #容器开发对外的端口
name: httpd #名称
protocol: TCP
livenessProbe: #pod内容器健康检查的设置,详情请见http://blog.csdn.net/liyingke112/article/details/77531584
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: #详情请见http://blog.csdn.net/liyingke112/article/details/76577520
- 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: - ...
此外,了解Kubernetes的YAML配置文件还需要掌握Kubernetes的资源对象模型、生命周期管理、标签和选择器的使用、持久化存储的配置、网络策略的定义等高级概念。通过掌握这些知识,开发者和运维人员能够更好地管理...
"hello-world"的YAML文件会包含一个Deployment对象,它定义了应用的版本、副本数量以及如何构建Pod(Kubernetes的基本执行单元)。 2. **创建Deployment**:使用`kubectl apply -f`命令,你可以将YAML文件应用到...
在“k8s-二进制yaml.zip”这个压缩包中,我们很显然关注的是Kubernetes的YAML配置文件,这些文件是k8s集群中定义和管理对象(如Pods、Services、Deployments等)的主要方式。YAML是一种易读的数据序列化语言,特别...
在资源管理方面,Pod的配置文件中包含了关于CPU和内存的请求(requests)和限制(limits)。 例如,下面的Pod配置展示了如何为两个容器(db和wp)分别设定资源请求和限制: ```yaml apiVersion: v1 kind: Pod ...
Kubernetes使用YAML文件进行资源配置管理,这是一种人类可读的数据序列化标准格式,非常适合用来描述和配置系统中的数据对象。本文将为您深入解析k8s中各个.yaml配置文件的作用和重要性。 首先,我们需要了解YAML...
《Kubernetes权威指南》是一本深入探讨 Kubernetes 集群管理、应用部署和服务发现的经典教程。这本书通过详尽的实例代码,帮助读者理解和掌握 Kubernetes 的核心概念与实践操作。在这个压缩包“kubeguide-example-...
在这个例子中,我们使用 `vim` 编辑器创建了一个名为 `mypod.yaml` 的文件,内容定义了一个 Pod,包括其 `kind`(Pod)、`apiVersion`(v1)以及 `metadata` 和 `spec` 部分。 `metadata` 包含了 Pod 的元数据,如...
之后,定义一个Pod的YAML文件,其中包含节点选择器,最后使用`kubectl apply`命令应用这个配置。 第五个任务涉及Persistent Volume(PV)的创建。PV是集群中的存储资源,可以被多个Pod共享。在这里,创建了一个名为...
在这个具体的例子中,deploy.yaml文件被用于配置Ingress-Nginx控制器,这是一类用于管理Kubernetes集群中服务的外部访问入口的控制器。 在部署基于k8s版本1.30的环境中,修改后的ingress-nginx配置文件可能包含了...
在这个例子中,我们使用以下命令来下载 CIS Kubernetes Benchmark 的配置文件: ``` wget -O kube-bench-control-plane.yaml https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job-master.yaml kc ...
YAML文件通常具有`.yaml`或`.yml`扩展名,它们包含了定义Kubernetes对象所需的所有元数据,如部署、服务、副本集、配置映射等。 Kubernetes YAML文件结构清晰,由键值对组成,使用缩进表示层次关系。一个基本的YAML...
`service-nodeport.yaml`文件通常用于创建一个NodePort类型的Service,这种类型可以让外部网络通过每个节点的特定端口来访问内部服务。配置文件可能包含如下内容: ```yaml apiVersion: v1 kind: Service metadata:...
在实际应用中,我们可以通过`kubectl create secret`命令创建Secret,如上面的例子所示,从文件中读取数据并创建对应的Secret对象。然后,在Pod的定义中引用这些Secret,以将它们挂载到容器的适当路径下。 总结来说...
- 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...
在这个例子中,我们创建了一个名为`blackbox-exporter`的Deployment,使用了Prometheus官方的最新Blackbox Exporter镜像,并将`blackbox.yml`配置文件挂载到了容器内的`/etc/blackbox/config`目录。同时,我们创建了...
接着,我们使用`vim`编辑器创建了一个名为`DS-nginx.yaml`的yaml文件,这是Kubernetes资源定义的标准格式。 2. **定义DaemonSet**: 在`DS-nginx.yaml`文件中,我们定义了一个DaemonSet,其中`apiVersion`是`apps/...
name: pod-3 spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - frontend topologyKey: failure-...
在例子中,`/root/kubesec-pod.yaml`这个文件被`kubesec`扫描,发现了一个问题:容器的安全上下文(`.securityContext`)允许特权模式(`privileged`)设置为`true`。这是一个潜在的安全风险,因为它允许容器以宿主机...