k8s资源清单定义入门
1.资源分类
a.workload型资源:service、pod、deployment、ReplicaSet、StatefulSet、Job、Cronjob; b.服务发现及服务均衡资源型资源:Service、Ingress; c.配置与存储型资源:Volume、ConfigMap、Secret、DownwardAPI、CSI(容器存储接口,可以扩展各种第三方的存储卷) d.集群级资源:Namespace、Node、Role、rolebinding、clusterrolebinding; e.元数据型资源:HPA、podtemplate、limitrange(限制资源的如cpu、内存等) 查看pod的yaml格式清单 kubectl get pods myapp-9b4987d5-lwqnj -o yaml spec: # 规格、特性,用户期望的状态 tolerations: # 容忍度 status:# 显示当前资源的当前状态
2.创建资源的方法
apiserver仅接受json格式的资源定义;yaml可以无损转换为json,所以使用yaml格式提供配置清单,apiserver可自动将其转换为json格式,然后再提交.使用命令kubectl run,最终也是自动转为json格式的资源定义.
大部分资源的配置清单包含:
a.apiVersion:表示属于哪个api群组和版本,可以通过kubectl api-versions查看,显示方式为group/version b.Kind:资源类别,有pod、deloyment等 c.metadata:元数据,包括: 1)name:在同一资源下name是必须唯一的; 2)namespace:名称空间 3)labels:标签 4)annotations:资源注解 5)selfLink:每个资源引用的PATH,格式为/api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME 6)spec:定义用户期望的目标状态(disired state) 7)status:表示当前状态,让当前状态向期望的目标状态靠近,本字段由k8s集群维护 # pod怎么定义,即查看帮助手册 kubectl explain pods # 查看medadata下有哪些字段可以用 kubectl explain pod.metadata kubectl explain pods.spec.containers
3.用yaml创建pod
mkdir manifests && cd manifests/
cat pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-demo
  namespace: default
  labels:
    itsDeploy: myapp
spec:
  containers: 
  - name: myapp
    image: ikubernetes/myapp:v1
  - name: busybox
    image: busybox
    command:
    - "/bin/sh"
    - "-c"
    - "echo $(date) >> /usr/share/nginx/html/index.html; sleep 5"
# 命令式资源清单,也叫声明式资源清单
kubectl create -f maniteste/pod-demo.yaml
# 1个pod跑2个容器,"-"表示某个参数可以有多个,譬如containers中的name
kubectl describe pods pod-demo
# 查看日志
kubectl logs pod-demo myapp
# 进入运行中的容器,当然我创建的这个进不去,因为镜像太小,不支持
kubectl exec -it pod-demo -c myapp -- /bin/bash
# 删除pod
kubectl delete -f maniteste/pod-demo.yaml
参考博客:http://blog.itpub.net/28916011/viewspace-2213934/
python2.7源码安装MySQLdb:https://blog.csdn.net/lovemysea/article/details/79881382


                
            
        
浙公网安备 33010602011771号