kubernetes资源对象

有一个RESTful的api,可用GET,PUT,DELETE,POST,等方式完成操作

相关命令,kubectl run,get,edit

相关资源如下:

   workload:Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob

   服务发现,均衡:Service,Ingress

  配置与存储: Volume,CSI

  ConfigMap,Secret

       DownwardAPI

 集群级资源

  namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding

 元数据性资源

   HPA,PodTemplate,LimitRange

通过如下命令查看pod的定义语句:

kubectl get pod podname -o yaml

  主要字段:

  apiVersion: v1

  Kind: Pod

  metadata: --元数据定义

  spec: --规格配置,定义期望资源对象所处的状态

  status: --对象当前的状态

 apiserver仅接受JSON格式的资源定义

   yaml格式提供的配置清单,apiserver可自动将其转为json格式,而后再提交

kubectl api-versions -- 查看有那些api版本

 大部分资源的配置清单有5个大的资源:

   1)apiVersion: group/version

      $ kubectl api-versions

  2)kind: 资源类别

  3)metadata: 元数据
     name 对象名词
     namespace 所属名称空间
     lables  自建标签
     annotations 资源注解

  每个资源的引用PATH

 
 

          selfLink: /api/v1/namespaces/default/pods/mysql-45wl2
   selflink格式: /api/(GROUP/VERSION)/namespaces/NAMESPACE/TYPE/NAME

4)spec :期望的状态,disired state

   查看定义  kubectl explain pod.spec.containers

  对于类型为OBject的对象,可持续在后面增加查询字段,该类对象的子集,没部分开始要以“-”开头,如
containers:
- name: myapp
image: mysql:v1.7
5)status: 当前状态
  

写第一个pod  

vi fist-ood.yaml

 apiVersion: v1Kind: Pod

meatdata:
   name: pod-demo
   namespace:default
   labels:
     app: myapp
     tier: frontend
spec:
  containers:
  - name: myapp
    image: tomcat:latest
imagePullPolicy: IfNotPresent     
ports:     
- name: http
containerPort: 80
protocol: TCP
  - name: https
containerPort: 443
protocol: TCP
- name: busybox
    image: busybox:latest
    command:
    - "/bin/sh"
    - "-c"
    - "sleep 3600"

登陆进去查看容器日志:

kubectl exec -it pod-demo -c myapp /bin/bash

资源配置清单:

   自主式pod资源

   资源的清单格式:

             一级字段: apiVersion(group/version) ,分为alpha,v1beta1,v1beta2,v1,v2等版本

                                kind,分为pod

           metadata, 内容name,namespace,labels,annotaions

                spec,内容包括必选项containers,(name, image,imagePullPolicy)

           status,当前状态,只读的          

  为容器设置启动时要执行的命令和参数: command   args

如果要覆盖默认的 Entrypoint 与 Cmd,需要遵循如下规则:

  • 如果在容器配置中没有设置 command 或者 args,那么将使用 Docker 镜像自带的命令及其入参。

  • 如果在容器配置中只设置了 command 但是没有设置 args,那么容器启动时只会执行该命令,Docker 镜像中自带的命令及其入参会被忽略。

  • 如果在容器配置中只设置了 args,那么 Docker 镜像中自带的命令会使用该新入参作为其执行时的入参。

  • 如果在容器配置中同时设置了 commandargs,那么 Docker 镜像中自带的命令及其入参会被忽略。容器启动时只会执行配置中设置的命令,并使用配置中设置的入参作为命令的入参。

链接地址:https://kubernetes.io/zh/docs/tasks/inject-data-application/define-command-argument-container/

  

猜你喜欢

转载自www.cnblogs.com/mjxi/p/13368033.html
今日推荐