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
相关推荐
资源开发与学习2 天前
Kubernetes集群核心概念 Service
kubernetes
容器魔方2 天前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
muyun28002 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
Nazi62 天前
k8s的dashboard
云原生·容器·kubernetes
傻傻虎虎2 天前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
是小崔啊2 天前
叩丁狼K8s - 概念篇
云原生·容器·kubernetes
summer_west_fish3 天前
2023年系统分析师上半年论文试题分析
kubernetes
LeeZhao@3 天前
【AI推理部署】Docker篇04—Docker自动构建镜像
人工智能·docker·容器
程思扬3 天前
利用JSONCrack与cpolar提升数据可视化及跨团队协作效率
网络·人工智能·经验分享·docker·信息可视化·容器·架构
落日漫游3 天前
dockercompose和k8s区别
docker·kubernetes