有一个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 镜像中自带的命令会使用该新入参作为其执行时的入参。 -
如果在容器配置中同时设置了
command
与args
,那么 Docker 镜像中自带的命令及其入参会被忽略。容器启动时只会执行配置中设置的命令,并使用配置中设置的入参作为命令的入参。
链接地址:https://kubernetes.io/zh/docs/tasks/inject-data-application/define-command-argument-container/