k8s通过yaml创建pod_如何使用YAML创建Pod
上期,我们学习了什么是YAML文件。本期课程,我们来学习如何使用YAML创建Pod。piVersion: v1kind: Podmetadata: name: static-web labels: app: webspec: containers: - name: web-front image: nginx ports: - name...
上期,我们学习了什么是YAML文件。本期课程,我们来学习如何使用YAML创建Pod。
piVersion: v1
kind: Pod
metadata:
name: static-web
labels:
app: web
spec:
containers:
- name: web-front
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
上面的YAML配置定义的一个普通的POD 文件,我们先来简单分析下文件内容:
apiVersion:此处值是v1,这个版本号需要根据安装的Kubernetes版本和资源类型进行变化,记住不是写死的。
kind:此处创建的是Pod,根据实际情况,此处资源类型可以是Deployment、Job、Ingress、Service等。
metadata:包含Pod的一些meta信息,比如名称、namespace、标签等信息。
spec:包括一些container,storage,volume以及其他Kubernetes需要的参数,以及诸如是否在容器失败时重新启动容器的属性。可在特定Kubernetes API找到完整的Kubernetes Pod的属性。
查看apiVersion
[root@vms20 pod]# kubectl api-versions
admissionregistration.k8s.io/v1
...
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
...
v1
一个典型的容器定义
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
上述例子只是一个简单的最小定义:一个名字(front-end)、基于nginx的镜像,以及容器将会监听的指定端口号(80)
除了上述的基本属性外,还能够指定复杂的属性,包括容器启动运行的命令、使用的参数、工作目录以及每次实例化是否拉取新的副本。还可以指定更深入的信息,例如容器的退出日志的位置。容器可选的设置属性包括:
name、image、command、args、workingDir、ports、env、resource、volumeMounts、livenessProbe、readinessProbe、livecycle、terminationMessagePath、imagePullPolicy、securityContext、stdin、stdinOnce、tty
kubectl创建Pod
明白了POD 的定义后,我们将上面创建POD 的YAML 文件保存成pod.yaml,然后使用kubectl创建POD:
[root@vms20 pod]# kubectl apply -f pod.yaml
pod/static-web created
查看Pod状态
使用我们kubectl get pods命令来查看POD 的状态:
[root@vms20 pod]# kubectl get pods -l app=web
NAME READY STATUS RESTARTS AGE
static-web 1/1 Running 0 2m23s
更多推荐
所有评论(0)