在kubernetes中,我们以下列表的组件都称为资源对象:
namespace pod deployment StatefuleSet DaemonSet Service Ingress ConfigMap Secret PersistentVolumes(PV) PersistentVolumeClaims(PVC) Job CronJob
创建这些资源对象的时候,如果我们用命令创建,一般都是把配置信息写入到yaml文件里面,然后使用如下的命令来创建:
kubectl create -f xxxx.yaml
所以此时这个xxxx.yaml文件的编写就比较有规律了,这里一般我们以模型的形式来进行填写,下面给一个创建pod的模板:
apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
整个模板的话,我们分别来介绍下这4大块。
1)apiversion
这个apiversion主要是定义创建的对象使用的Kubernetes API版本,目前几乎统一都是v1,所以直接写死即可。
2)kind
kind是指定当前创建的对象所属的资源类型,例如:Pod、Service、Deployment等。
3)metadata
这里的metadata主要是配置对象的元数据信息,例如:名称,标签,注释,namespace等等,建议一定要配置标签,这里的标签是k8s中的一个特色,在后续的文章中我们会着重降到。
4)spec
这里就是将要创建的对象的具体信息了,根据实际的情况编写即可。
下面我们来演示下创建的这个pod。示例图如下:
可以看到我们成功的创建了这个myapp-pod实例。然后我们查看pod的日志:
kubectl logs -f myapp-pod
效果如下图:
这里和原yaml中的期望是一样的:
以上就是kubernetes创建资源对象的模板信息。
还没有评论,来说两句吧...