IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> kubernetes 标签选择器 -> 正文阅读

[系统运维]kubernetes 标签选择器

每个资源可以定义一个或者多个标签,如Deployment、Pod等,定义标签可以用来分组,或者资源匹配。

例如service就是通过标签匹配后端的Pod,然后达到负载的目的。

网上找的一些常用标签:

  • 版本标签:"release" : "stable" , "release" : "canary"...
  • 环境标签:"environment" : "dev" , "environment" : "production"
  • 架构标签:"tier" : "frontend" , "tier" : "backend" , "tier" : "middleware"
  • 分区标签:"partition" : "customerA" , "partition" : "customerB"...
  • 质量管控标签:"track" : "daily" , "track" : "weekly"

    ?
  • ? ? 常用标签转自:
  • 作者:半兽人
    链接:https://www.orchome.com/1335
    来源:OrcHome
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签操作

1、查看标签:

# kubectl get pod/nginx-pod --show-labels 
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          10m   app=nginx,env=qa

可以看到在LABELS下有?app=nginx,env=qa 这两个标签了

2、添加标签:

第一种,命令方式

# kubectl label pod/nginx-pod release=v1.20
pod/nginx-pod labeled

查看
# kubectl get pod/nginx-pod --show-labels 
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          15m   app=nginx,env=qa,release=v1.20

第二种,yaml文件

在metadata下新增labels,然后写上自己想要的标签键值对
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    env: qa
    app: nginx

3、修改标签

# kubectl get pod/nginx-pod --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          19m   app=nginx,env=qa,release=v1.20

# kubectl label pod/nginx-pod release=v1.21 --overwrite 
pod/nginx-pod labeled

# kubectl get pod/nginx-pod --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          19m   app=nginx,env=qa,release=v1.21

release=v1.20 -->?release=v1.21

3、删除标签

# kubectl get pod/nginx-pod --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          23m   app=nginx,env=qa,release=v1.21

# kubectl label pod/nginx-pod release-
pod/nginx-pod labeled

# kubectl get pod/nginx-pod --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          23m   app=nginx,env=qa

在key后加一个“-”减号就是删除该标签

同样集群中的node节点也有标签,增删改查和上面一样

增
kubectl label node/<nodename> env=qa

删
kubectl label node/<nodename> env

改
kubectl label node/<nodename> env=dev --overwrite

查
kubectl get node/<nodename> --show-labels

标签过滤,即查找标签为xxx的资源

查找所有node节点标签为 env=qa 的节点
# kubectl get node --show-labels -l env=qa

其他过滤表达式

表达式作用
env=qa等于
env!=qa不等于
'env in (qa,dev,qc)'包含
'env notin (qa,dev,qc)'不包含
'app,env notin (dev,qc)'组合过滤

?

Service根据标签匹配Pod

# kubectl get pod/nginx-pod --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          23m   app=nginx,env=qa


创建service yaml匹配标签为app=nginx的pod
apiVersion: v1
kind: Service
metadata:
  labels:
    svcname: nginx-pod-svc
  name: nginx-pod-svc
spec:
  ports:
  - name: server
    port: 8080        # service对外端口
    protocol: TCP
    targetPort: 80    # Pod的容器端口
  selector:
    app: nginx        # 标签匹配
  type: ClusterIP


测试:
# kubectl get svc --field-selector metadata.name=nginx-pod-svc
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
nginx-pod-svc   ClusterIP   192.168.48.63   <none>        8080/TCP   23m

# curl 192.168.48.63:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:58:21  更:2022-03-16 22:59:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:58:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码