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
相关推荐
小的~~5 分钟前
k8s使用本地docker私服启动自制的flink集群
docker·flink·kubernetes
诚诚k33 分钟前
docker存储
运维·docker·容器
数据智能老司机1 小时前
Kubernetes从入门到精通系列——外部 DNS 和全局负载均衡
云原生·容器·kubernetes
NiNg_1_2342 小时前
使用Docker Compose一键部署
运维·docker·容器
FLGB2 小时前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
萠哥啥都行2 小时前
Linux安装Docker以及Docker入门操作
运维·docker·容器
汀、人工智能3 小时前
修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)
docker·容器
吃面不喝汤663 小时前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Leighteen4 小时前
Docker常用命令
docker·容器
codelife3214 小时前
在Docker容器中执行命令
容器