一、Kubernetes对象的描述

kubernetes中资源可以使用YAML描述(如果您对YAML格式不了解,可以参考YAML语法),也可以使用JSON。其内容可以分为如下四个部分:

  • typeMeta:对象类型的元信息,声明对象使用哪个API版本,哪个类型的对象。
  • objectMeta:对象的元信息,包括对象名称、使用的标签等。
  • spec:对象的期望状态,例如对象使用什么镜像、有多少副本等。
  • status:对象的实际状态,只能在对象创建后看到,创建对象时无需指定。

1.1 TypeMeta

1.1 apiVersion:apps/v1

        指定正在使用的Kubernetes API的版本,常用:apps/v1

1.2 kind(k8s in docker)

1.2.1 分类

        pod:k8s最小调度单元,一个Pod可以包含多个容器。

        service:提供固定的ip访问pod内的容器,Pod更新后ip变动,不影响访问。

        depeloyment(无状态负载):副本控制器,控制Pod部署。

        configMap:配置中心。

        ingress: 暴漏公网访问资源。

        Stateful:有状态负载。

        Job:Job是用来控制批处理型任务的对象。

        CronJob: 定时任务。

二、k8s yaml示例

nginx-deployment.yaml的文件,如下所示: 

apiVersion: apps/v1
kind: Deployment
metadata:
  name:  nginx
  labels:
    app:  nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 3
  template:
    metadata:
      labels:
        app:  nginx
    spec:
      containers:
      - name:  nginx
        image:  nginx:alpine
        resources:
          requests:
            cpu: 100m
            memory: 200Mi
          limits:
            cpu: 100m
            memory: 200Mi
      imagePullSecrets:
      - name: default-secret

使用kubectl连接集群后,执行如下命令:

# kubectl create -f nginx-deployment.yaml 
deployment.apps/nginx created

命令执行后,Kubernetes集群中会创建3个Pod,使用如下命令可以查询到Deployment和Pod:

# kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   3/3     3            3           9s

# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-685898579b-qrt4d   1/1     Running   0          15s
nginx-685898579b-t9zd2   1/1     Running   0          15s
nginx-685898579b-w59jn   1/1     Running   0          15s

        

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐