K8S 之 POD标签的应用

一、创建POD时指定相应标签

apiVersion: v1
kind: Pod
metadata:
  name: kubia-manual
  namespace: test
  labels:
    app: web_html         #定义了app标签为:web_html
    env: prod                  #定义了env标签为:prod
spec:
  containers:
    - name: kubia
      image: luksa/kubia
      ports:
        - containerPort: 8080
          protocol: TCP

二、通过标签查看POD

[[email protected] ~]# kubectl get pod --show-labels -n test      #查看所有pod的标签
NAME                        READY   STATUS    RESTARTS   AGE    LABELS
kubia-manual                1/1     Running   0          47h    app=web_test,env=prod
nginx-dp-856666d759-bfrgj   1/1     Running   0          3d9h   app=nginx-proxy,env=test,pod-template-hash=856666d759
nginx-dp-856666d759-c5p4l   1/1     Running   0          3d9h   app=nginx-proxy,env=test,pod-template-hash=856666d759

[[email protected] ~]# kubectl get pod -l env=prod -n test   #查看env=prod的标签
NAME           READY   STATUS    RESTARTS   AGE
kubia-manual   1/1     Running   0          47h

三、修改POD标签的属性

[[email protected] ~]# kubectl get pod -l env=prod -n test
NAME           READY   STATUS    RESTARTS   AGE
kubia-manual   1/1     Running   0          47h
[[email protected] ~]# kubectl label pod kubia-manual env=debug --overwrite -n test
pod/kubia-manual labeled
[[email protected] ~]# kubectl get pod --show-labels -n test | grep env=debug
kubia-manual                1/1     Running   0          47h    app=web_test,env=debug

四、为现有POD添加一个标签

[[email protected] ~]# kubectl label pod kubia-manual mingkang_test=test -n test
pod/kubia-manual labeled
[[email protected] ~]# kubectl get pod --show-labels -n test | grep kubia-manual
kubia-manual                1/1     Running   0          47h    app=web_test,env=debug,mingkang_test=test

五、通过POD标签,固定到某个NODE上

apiVersion: v1
kind: Pod
metadata:
  name: kubia-manual
  namespace: test
  labels:
    app: web_html
    env: prod
spec:
  nodeSelector:       #节点标签选择器
    gpu: true             #gpu为true的节点
  containers:
    - name: kubia
      image: luksa/kubia
      ports:
        - containerPort: 8080
          protocol: TCP

原文地址:https://blog.51cto.com/12965094/2483745

时间: 2024-11-09 18:28:47

K8S 之 POD标签的应用的相关文章

k8s之pod控制器

Pod控制器类型: ReplicationController  à Replicaset Replicaset:维持用户期望的pod副本数  标签选择器:以便选定由自己选定管理的pod副本  pod资源模板:完成pod资源的新建 特点:管理无状态的pod资源,精确反映用户所定义的目标数量 K8s不建议直接使用Replicaset,而是使用Deployment Deployment:工作在replicaset上,通过控制replicaset来控制pod Deployment具备replicase

K8s的POD连接数据库时报错

[[email protected] xxxx]# ./showlog.sh dr iff-dr-1128668949-lb90g 2017-09-29 03:21:57,575 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction: Logging - STABLE org.wildfly.swarm:logging:2017.8.1 2017-09-29 03:21:57,612 INFO [org.wildfly.s

k8s的pod

一.Pod的分类 自主式Pod : 控制器管理的Pod:Kubernetes使用更高级的称为Controller的抽象层,来管理Pod实例.每个Pod都有一个特殊的被称为“根容器”的Pause容器. Pod与controllers的关系 • controllers:在集群上管理和运行容器的对象 • 通过label-selector相关联 • Pod通过控制器实现应用的运维,如伸缩,升级等 二.Pod容器分类 • Infrastructure Container:基础容器 • 维护整个Pod网络空

k8s的pod的资源调度

1.常用的预选策略 2.优选函数 3.节点亲和调度 3.1.节点硬亲和性 3.2.节点软亲和性 4.Pod资源亲和调度 4.1.Pod硬亲和度 4.2.Pod软亲和度 4.3.Pod反亲和度 5.污点和容忍度 5.1.定义污点和容忍度 5.2.管理节点的污点 5.3.Pod对象的容忍度 API Server在接受客户端提交Pod对象创建请求后,然后是通过调度器(kube-schedule)从集群中选择一个可用的最佳节点来创建并运行Pod. 而这一个创建Pod对象,在调度的过程当中有3个阶段:节点

K8s之Pod进阶

注意此篇文章接上篇:K8s之Pod资源管理及创建Harbor私有镜像仓库https://blog.51cto.com/14464303/2471369 一.资源限制: pod和container的资源请求和限制: spec.containers[].resources.limits.cpu #cpu上限 spec.containers[].resources.limits.memory #内存上限 spec.containers[].resources.requests.cpu #创建时分配的基

k8s之pod调度详解

通常情况下,使用的都是k8s默认的调度调度方式,但是在有些情况下,我们需要将pod运行在具有特点的标签的node上才能都运行,这个时候,pod的调度策略就不能使用k8s默认的调度策略了,这个时候,就需要指定调度策略,告诉k8s需要将pod调度到那些node(节点)上. nodeSelector常规情况下,会直接使用nodeSelector这种调度策略.labels(标签) 是k8s里面用来编标记资源的一种常用的方式,我们可以给node标记特殊的标签,然后nodeSelector会将pod调度到带

K8s之Pod资源管理及创建Harbor私有镜像仓库(含镜像拉取操作,中途含排错)

pod是k8s管理的最小单元 pod中有多个容器,现实生产环境中只有一个容器 特点: 1.最小部署单元2.一组容器的集合3.一个Pod中的容器共享网络命令空间4.Pod是短暂的 Pod容器分类: 1:infrastructure container 基础容器(透明的过程,用户无感知) 维护整个Pod网络空间 node节点操作 `查看容器的网络` [[email protected] ~]# cat /opt/kubernetes/cfg/kubelet KUBELET_OPTS="--logto

访问k8s内部pod service网络

kafa部署在k8s中,并且使用statefulset 方式部署,应用pod连接kafka 使用  kafka-0.kafka-hs.sy-platform-demo.svc.cluster.local.:9093, 如果k8s 外部开发测试,无法连接,所以需要外部网络与pod service网络打通 #kafka注册到zk中[zk: localhost:2181(CONNECTED) 5] get /brokers/ids/0 {"jmx_port":-1,"timesta

k8s更新Pod镜像

实际使用k8s中,如果使用RC启动pod可以直接使用滚动更新进行pod版本的升级,但是我们使用的情况是在pod里面启动有状态的mysql服务,没有和RC进行关联,这样更新的时候只能通过 更新pod的配置直接替换的形式进行更新了,以下脚本是我们进行更新的简单脚本: #!/bin/bash #命名空间 ns=$1 #pod名称 podname=$2 #获取pod yaml配置 /root/k8s.sh th --namespace=$ns get pods $podname -o yaml > &quo