yuanxiaojiang
人的放纵是本能,自律才是修行

  Label、Selector

  • Label:Label(标签)可以对K8s的一些对象进行分组(如对Pod和k8s集群节点进行分组)
  • 通过添加 key=value 格式的标签,用于区分同样的资源不同的分组
  • Selector:Selector(标签选择器)可以通过根据资源的标签查询出精确的对象信息
# 查看k8s集群所有节点的标签
kubectl get nodes --show-labels

# 查看k8s集群某个节点的标签
kubectl get node k8s-node-1 --show-labels

# 添加k8s集群节点标签
kubectl label nodes <节点名称> <标签键>=<标签值>
kubectl label nodes k8s-node01 daemonset_test=daemonset_test

# 删除k8s集群节点标签
kubectl label nodes <节点名称> <标签键>-
kubectl label nodes k8s-node01 daemonset_test-

 

定义Label

应用案例:公司与 xx 银行有一条专属的高速光纤通道,此通道只能与 192.168.122.0 网段进行通信

# 给node添加标签(也可以给Pod、Service等其他资源添加标签)
[root@k8s-master01 ~]# kubectl label node k8s-node01 region=subnet7
[root@k8s-master01 ~]# kubectl label node k8s-node02 region=subnet7

# 通过selector进行筛选
[root@k8s-master01 ~]# kubectl get node -l region=subnet7
NAME         STATUS   ROLES    AGE     VERSION
k8s-node01   Ready    <none>   7d12h   v1.31.14
k8s-node02   Ready    <none>   7d12h   v1.31.14
[root@k8s-master01 pod_practice]# cat bank-app.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bank-app
spec:
  replicas: 4
  selector:
    matchLabels:
      app: bank-app
  template:
    metadata:
      labels:
        app: bank-app
    spec:
      containers:
      - name: bank-app-nginx
        image: docker.m.daocloud.io/nginx:latest
      nodeSelector:
        region: subnet7

 

[root@k8s-master01 pod_practice]# kubectl get pod -owide --show-labels |grep bank-app
bank-app-57b8d75849-65ssn    1/1   Running   k8s-node01   app=bank-app
bank-app-57b8d75849-mmmz8    1/1   Running   k8s-node02   app=bank-app
bank-app-57b8d75849-pvtkn    1/1   Running   k8s-node01   app=bank-app
bank-app-57b8d75849-rzl98    1/1   Running   k8s-node02   app=bank-app

 

k8s上是如何发布服务的

别人怎么访问我在k8s上部署的服务

image

 

image

 

 

 

Service

什么是Service?
每个Pod都会获取到它自己的IP地
址,但是这些IP地址不总是稳定和
可依赖的,这样就会导致一个问题:
在Kubernetes集群中,如果一组
Pod(比如后端的Pod)为其他Pod
(比如前端的Pod)提供服务,那
么如果它们之间使用Pod的IP地址
进行通信,在Pod重建后,将无法
再进行连接。于是Kubernetes引用
了Service这样一种抽象概念:逻辑
上的一组Pod,即一种可以访问
Pod的策略。这一组Pod能够被
Service通过标签选择器访问到,之
后就可以使用Service进行通信

image

 

 

image

 

 

什么是Ingress?
Ingress为Kubernetes集群中的服务提供了入口,可以提供负载均衡、SSL终止和基于名
称(域名)的虚拟主机、应用的灰度发布等功能,在生产环境中常用的Ingress有Treafik、
Nginx、HAProxy、Istio等。

image

 

 

image

 

 

image

 

posted on 2025-11-25 21:40  猿小姜  阅读(0)  评论(0)    收藏  举报

levels of contents