3.通过yaml配置文件创建pod

这里写目录标题

通过yaml配置文件创建pod

k8s中一切皆资源

pod是最小的资源单位

任何的k8s资源都可以通过yaml清单文件来定义

k8s yaml文件的主要组成部分(需要顶格写)

复制代码
apiVersion:v1  api版本
kind : pod 资源类型,可以是pod、deployment、statefulset
metadata: 属性,pod相关的元数据,用于描述pod的数据
spec:详细,期望pod按照这里面的描述进行创建

这里以nginx为例

因为之前创建过nginx的deploy,所以这里先将相关的deploy和service删除掉

复制代码
kubectl delete deploy nginx
kubectl delete svc nginx

编写yaml配置文件

一定要注意格式

vim nginx_pod.yaml

复制代码
apiVersion: v1           #k8s api的版本
kind: Pod                #资源对象的类型,可以是pod deploy svc等
metadata:                #pod相关的元数据,用于描述pod的数据
  name: nginx-demo       #pod的名称
  labels:                #定义pod的标签
    type: app            #自定义label标签,名字为type,值为app
    version: 1.0.0       #自定义标签,描述pod版本号
  namespace: 'default'   #命名空间配置
spec:                    #详细定义对象,期望pod按照这里的描述进行创建
  containers:            #对pod中容器的描述
  - name: nginx          #容器的名称
    image: nginx:latest                 #指定容器的镜像,指定具体版本
    imagePullPolicy: IfNotPresent       #镜像的拉取策略,如果本地有镜像就用本地的,没有就远程拉取镜像
    command:                            #指定容器启动时执行的指令"nginx -g daemon off"
    - nginx
    - -g
    - 'daemon off;'
    workingDir: /usr/share/nginx/html   #指定容器启动后的工作目录
    ports:                              #指定容器的端口列表
    - name: http                        #指定端口名称
      containerPort: 80                 #指定容器内暴露的端口
      protocol: TCP                     #指定该端口基于哪种协议
    env:                                #容器环境变量设置
    - name: JVM_OPTS                    #环境变量名
      value: '-Xms128m -Xmx128m'        #环境变量的值
    resources:                          #指定资源限制
      requests:                         #最少需要多少资源
        cpu: 100m                       #限制cpu最少使用0.1个核心
        memory: 128Mi                   #限制内存最少使用128M
      limits:                           #最多可以用多少资源
        cpu: 200m                       #限制cpu最多使用0.2个核心
        memory: 256Mi                   #限制内存最多使用256M
  restartPolicy: OnFailure              #定义pod的重启策略

根据配置文件创建pod

kubectl create -f nginx_pod.yaml

pod创建成功

展示更多信息
kubectl get pod -o wide

可以看到pod所在节点,以及IP地址

在主节点测试可以正常访问


配置文件参数参考

创建一个nginx的pod,会发现它起了两个容器

以nginx容器为例,一个pod中封装了两个容器,一个是pod的基础容器,用来实现k8s的相关功能,一个是nginx的业务容器


常用资源类型与别名
资源类型 别名
pod po
deployment deploy
service svc
namespace ns
node no
相关推荐
树下一少年1 小时前
ansible+docker+docker-compose快速部署4节点高可用minio集群
docker·容器·ansible·docker-compose·minio集群
Connie14514 小时前
在 Kubernetes (k8s) 中,apiserver 的 IIP和 VIP的区别
云原生·容器·kubernetes
葟雪儿7 小时前
Docker常用命令
linux·服务器·spring cloud·docker·微服务·容器
爬台阶的蚂蚁9 小时前
搭建docker registry私服,并且支持https推送
docker·容器·https
张家宝68379 小时前
Containerd学习
后端·容器
会游泳的石头9 小时前
探索现代网络技术:从负载均衡到 Kubernetes
运维·kubernetes·负载均衡
容器魔方11 小时前
KubeEdge边缘设备管理系列(五):Mapper-Framework设备数据写入
云原生·容器·云计算
穷儒公羊11 小时前
第一部分——Docker篇 第一章 Docker容器
运维·docker·云原生·容器
飞猪~12 小时前
docker相关命令
运维·docker·容器
千羽星弦12 小时前
Kubernetes 集群搭建(一):k8s 从环境准备到 Calico 网络插件部署(1.16版本)
网络·容器·kubernetes