kubernetes基础知识之download api
查看pod的信息:
kubectl get pod -n $namespace_name -o wide
kubernetes downward api 把容器的实际运行结果,反馈到容器内部,提供给容器,供给程序去调用。
资源的软限制等同于应用的目标消耗资源。
硬限制是说如果目标值不够用的话,可以临时扩容资源,但是不能超过硬限制的值。
kubernetes downward api 卷绑定:
downward api 卷绑定pod的yaml文件pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: downward-api-volume-example
namespace: default
spec:
containers:
- name: nginx-container
image: nginx
imagePullPolicy: Always
ports:
- containerPort: 80
resources:
limits:
cpu: "1"
memory: "512Mi"
requests:
cpu: "1"
memory: "256Mi"
volumeMounts:
- name: downward-api-volume
mountPath: /etc/podinfo
volumes:
- name: downward-api-volume
downwardAPI:
items:
- path: "annotations"
fieldRef:
fieldPath: metadata.annotations
- path: "labels"
fieldRef:
fieldPath: metadata.labels
- path: "name"
fieldRef:
fieldPath: metadata.name
- path: "namespace"
fieldRef:
fieldPath: metadata.namespace
- path: "uid"
fieldRef:
fieldPath: metadata.uid
-path: "cpuRequest"
resourceFieldRef:
containerName: nginx-container
resource: requests.cpu
-path: "memoryRequest"
resourceFieldRef:
containerName: nginx-container
resource: requests.memory
-path: "cpuLimit"
resourceFieldRef:
containerName: nginx-container
resource: limits.cpu
-path: "memoryLimit"
resourceFieldRef:
containerName: nginx-container
resource: limits.memory
restartPolicy: Never
卷名downward-api-volume绑定在了/etc/podinfo。
进入pod:
kubectl exec -it `kunectl get pod -n default --no-headers| awk '{print $1}'` -n default -- /bin/bash
cd /etc/podinfo
可以看到挂载过来的内容。
或者这样使用for循环批量显示内容:
for i in $(ls); do echo "filename: ${i}";cat ${i}; echo;done
这样可以显示/etc/podinfo文件目录下的所有文件内容。
Pod中内存的软限制和硬限制的单位是B(字节Byte),进制是1024。
使用卷volume的方式挂载的好处是:当内容被downward api内容修改之后,可以立即更新到pod中。
查看pod的标签:
kubectl get pod -n $namespace_name --show-labels --no-headers
给pod添加标签:
kubectl label pod $pod_name -n $namespace_name $key=$value
举例:
kubectl label pod $pod_name domain=87long.com
查看pod标签:
kubectl get pod -n default --show-labels
查看标签配置成功。
查看使用volume卷挂载绑定pod之后的挂载内容:
for i in $(ls);do echo "filename: ${i}";cat ${i};echo;done
说明以卷volume的方式绑定,可以进行热更新。
只要对pod进行了修改,都会被反馈到文件内部的变化。
对于卷来说,会保持热更新的特性。当对pod本身的数据进行了修改,元数据信息发生修改改变之后,会反馈到挂载的文件中,及时地保证更新。
还有就是可以传递一个容器的资源字段到另外一个容器中。这里有一个前提条件:必须是同一个pod的容器信息。
Downward API提供了一种简单的方式,将pod和容器的元数据传递给在它们内部运行的进程,但这种方式其实仅仅可以暴露一个pod自身的元数据传递给在它们内部运行的进程。这种方式仅仅可以暴露一个pod自身的元数据,而且只可以暴露部分元数据。
鼓励的话语:别怕过去的自己,如何生活得狼狈不堪;只有现在勇往直前的力量,才足以战胜遥不可及的梦想。路,一直在脚下,好好努力,明天必定越来越好!