跳到主要内容

pod

pod定义由这么几个部分组成:
首先是yml中使用的Kubeme t e sAPI版本和YAML描述的资源类型;其次是几乎在所有Ku bemete s资源中都可以找到的三大重要部分:
m e t a d a t a包括名称、命名空间、标签和关于该容器的其他信息。
s p e c包含po d内容的实际说明,例如po d的容器、卷和其他数据。
s t a t u s包含运行中的p od的当前信息,例如p od所处的条件、每个容器的描4、「JJ穹3.2以YAML或JSON描述文件创建p o d 61述和状态,以及内部I P和其他基本信息。


kubecl1 create -f kubia-manual.yaml

kubectl get po kubia-manual -o yaml


kubec七l logs kubia-manual -c kubia

端口转发 本地端口 8888
kubect1 port-forward kubia-manual 8888:8080


此时每个pod都标有两个标签:
• app, 它指定pod属于哪个应用、 组件或微服务。
• rel, 它显示在pod中运行的应用程序版本是stable、beta还是canary。


metadata:
name: kubia-manual-v2
labels:
crea七ion method: manual
env: prod

![87d8dcdba985f27913a724db8e426192.png](87d8dcdba985f27913a724db8e426192.png)


kubectl get po --show-labels

kubectl get po -L creation_method,env

创建标签
kubectl label po kubia-manual creation method=manual


kubectl label po kubia-manual-v2 env=debug --overwrite


标签选择器根据资源的以下条件来选择资源:
• 包含(或不包含)使用特定键的标签
• 包含具有特定键和值的标签
• 包含具有特定键的标签, 但其值与我们指定的不同



kubectl get po -1 '!env'

同理, 我们也可以将pod与以下标签选择器进行匹配:
• creation_rnethod!=rnanual选择带有creation_rnethod标签, 并且值不等于manual的pod
• env in (prod, devel)选择带有env标签且值为prod或devel的pod
• env notin (prod, devel)选择带有env标签,但其值不是prod或devel的pod

app = pc, rel = beta


kubectl label node gke-kubia-85f6-node-Orrx gpu=true

spec:
nodeSelec七or.
gpU: II 七rue"
containers:
- image: luksa/kubia
name: kubia


添加注解
kubec七1 annotate pod kubia-manual mycompany.com/someanno七a七ion="foo bar"


名称空间
kubectl get po --namespace kube-system

kubectl create namespace custom-namespace

kind : Namespace
metadata :

kubectl create -fkubia-manual.ya皿1-ncustom-na皿espace



kubectl delete po kubia-gpu



kubectl delete po -1 creation method=manual


kubectl delete ns custom-namespace

kubectl delete po --all

kubectl delete all --all