pod

pod定义详解

下面是一个完整的yaml格式定义的文件,注意格式,子集包含关系,不要有tab,要用空格。不是所有的元素都要写,按照实际应用场景配置即可。

 

定义一个简单pod(最好把docker源改成国内的)

apiVersion: v1
kind: Pod
metadata:
   name: hello-world
   namespace: default
spec: 
  restartPolicy: OnFailure
  containers:             
  - name: hello 
    image: "ubuntu:14.04"  
    command: ["/bin/echo","hello","world"]

pod文件解释:
apiVersion: v1//k8s版本
kind: pod//声明API对象类型这里是pod
metadata:
        name:hello-word //pod名字必须在namespace中是唯一
spec://配置pod具体配置
        restartPolicy: OnFailure // pod重启策略 [Always默认策略,当容器退出时总是重启容器|Never当容器退出时,从不重启|OnFailure容器正常退出不会再重新启动,退出码非0时才重启容器]
containers: //pod中的容器列表,可以有多个容器
       - name: hello //容器名字,在一个pod中唯一
       image: "ubuntu:14.04" //镜像名字
       command: ["/bin/echo","hello","word"]//设置容器的启动命令

 

创建pod

[root@kubernetes-master pods]# kubectl create -f helloworld.yml
pod "hello-word" created

 

查看pod状态,状态不是runing而是完成,说明容器运行完成已经退出了

pod

 

查看容器log输出

[root@kubernetes-master pods]# kubectl logs hello-world
hello world

 

这里要说一下command和args2个参数:

pod

 

 

 

 

pod中定义env

容器获取pod信息

 1 apiVersion: v1
 2 kind: Pod
 3 metadata:
 4    name: print-pod-info
 5    namespace: default
 6 spec: 
 7   containers:             
 8   - name: my-pod
 9     image: busybox
10     resources:   
11         requests:
12           memory: "32Mi"  
13           cpu: "125m"     
14         limits:
15           memory: "64Mi"
16           cpu: "250m"
17     env:
18     - name: MY_POD
19       valueFrom:
20         fieldRef:
21            fieldPath: metadata.name
22     - name: MY_POD_NAMESPACE
23       valueFrom:
24         fieldRef:
25            fieldPath: metadata.namespace
26     - name: MY_POD_IP
27       valueFrom:
28         fieldRef:
29            fieldPath: status.podIP  
30     - name: MY_POD_SERVICE_ACCOUNT
31       valueFrom:
32         fieldRef:
33            fieldPath: spec.serviceAccountName
34     - name: MY_CPU_REQUEST
35       valueFrom:
36         resourceFieldRef:
37            containerName: my-pod
38            resource: requests.cpu
39     - name: MY_CPU_LIMIT
40       valueFrom:
41         resourceFieldRef:
42            containerName: my-pod
43            resource: limits.cpu
44     - name: MY_MEM_REQUEST
45       valueFrom:
46         resourceFieldRef:
47            containerName: my-pod
48            resource: requests.memory
49     - name: MY_MEM_LIMIT
50       valueFrom:
51         resourceFieldRef:
52            containerName: my-pod
53            resource: limits.memory
54     command: ["/bin/sh","-c","while true;do sleep 5;done"]
my_api.yaml

相关文章:

  • 2022-12-23
  • 2021-11-01
  • 2022-01-01
  • 2021-04-10
  • 2021-09-02
  • 2021-11-10
  • 2022-01-03
  • 2021-08-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案