k8s集群搭建好后,各个node的状态变成了ready,就可以创建pod,创建完成后,就会默认的运行其中的container。
使用一个简单yaml文件描述pod:
apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 name: string #必选,Pod名称 namespace: string #必选,Pod所属的命名空间,默认为"default" labels: #自定义标签 - name: string #自定义标签名字 annotations: #自定义注释列表 - name: string spec: #必选,Pod中容器的详细定义 containers: #必选,Pod中容器列表 - name: string #必选,容器名称,需符合RFC 1035规范 image: string
运行kubectl create -f demo.yaml,就完成了创建pod
但是使用kubectl get pods,发现其转态不是completed,使用kubectl describe pod demo,报错:
FailedCreatedPodSandBox k8s.gcr.io/pause:3.1
查阅资料,发现k8s中的镜像都依赖于这个基础镜像。现在有两个办法,外网下载镜像或者更改k8s的远程仓库地址,还是手动下载最方便,参考文章k8s.gcr.io镜像无法下载的问题.这其中要求对docker操作比较熟悉,比如docker save,docker load
这样pod的状态就为complete了。
参考博客: