美文网首页
K8S存储之label操作

K8S存储之label操作

作者: david161 | 来源:发表于2022-03-17 11:52 被阅读0次

前面的课程我们学习了如何给pod打标签及修改pod的标签值。在某些特殊情况下,需要将某些服务固定在一台宿主机上, k8s可以使用label给node节点打上标签来满足这种需求。

添加label语法

kubectl label nodes <node-name> <label-key>=<label-value> 

为k8s-node01节点打标签 
kubectl label nodes k8s-node01 mariadb=mariadb 

查看node节点label值 
kubectl get nodes --show-labels

修改Label的值

语法: 需要加上 --overwrite 参数
kubectl label nodes <node-name> <label-key>=<label-value> --overwrite 

修改k8s-node01节点label值 
kubectl label nodes k8s-node01 mariadb=mariadb10.5 --overwrite 

查看node节点label值 
kubectl get nodes --show-labels

删除label语法

注意事项:label的可以后边要增加"-" 
kubectl label nodes <node-name> <label-key>- 

删除k8s-node01节点mariadb的label 
kubectl label nodes k8s-node01 mariadb- 

查看node节点label值 
kubectl get nodes --show-labels

mariaDB部署

通过指定node节点label,将mariaDB部署到指定节点。方便演示volume的各种方式。

指定node
kubectl label nodes k8s-node01 mariadb=mariadb 

查看node节点label值 
kubectl get nodes --show-labels
service部署
在spec.template.spec属性下增加nodeSelector属性。 
spec: 
    nodeSelector: #根据label设置,配置节点选择器 
      mariadb: mariadb #语法规则: key: value 
    containers:

全部资源文件清单

labels/mariadbsecret.yml
apiVersion: v1 
kind: Secret 
metadata: 
  name: mariadbsecret 
type: Opaque 
data: 
  password: YWRtaW4=
labels/mariadb.yml
apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: mariadb-deploy 
  labels: 
    app: mariadb-deploy 
spec: 
  replicas: 1 
  template: 
    metadata: 
      name: mariadb-deploy 
      labels: 
        app: mariadb-deploy 
    spec: 
      nodeSelector: 
        mariadb: mariadb 
      imagePullSecrets: 
        - name: lagouharbor 
      containers: 
        - name: mariadb-deploy 
          image: 192.168.198.155:5000/lagouedu/mariadb:10.5.2 
          imagePullPolicy: IfNotPresent 
          ports: 
            - containerPort: 3307
          env:
            - name: MYSQL_ROOT_PASSWORD 
            #这是mysqlroot用户的密码 
            valueFrom: 
              secretKeyRef: 
                key: password 
                name: mariadbsecret 
            - name: TZ 
              value: Asia/Shanghai 
          args: 
            - "--character-set-server=utf8mb4" 
            - "--collation-server=utf8mb4_unicode_ci" 
          volumeMounts: 
            - mountPath: /etc/mysql/mariadb.conf.d/ #容器内的挂载目录 
              name: lagoumariadb #随便给一个名字,这个名字必须与volumes.name一致 
      restartPolicy: Always 
      volumes: 
        - name: lagoumariadb 
          configMap: 
            name: mariadbconfigmap 
  selector: 
    matchLabels: 
      app: mariadb-deploy 
--- 
apiVersion: v1 
kind: Service 
metadata: 
  name: mariadb-svc 
spec: 
  selector: 
    app: mariadb-deploy 
  ports: 
    - port: 3307 
      targetPort: 3307 
      nodePort: 30036 
  type: NodePort

labels/mariadbconfigmap.yml

apiVersion: v1 
data: 
  my.cnf: "省略中间数据部分,请各位同学前面章节" 
kind: ConfigMap 
metadata: 
  name: mariadbconfigmap

客户端测试

IP:192.168.198.157 
username:root 
password:admin 
prot: 30036

相关文章

  • K8S存储之label操作

    前面的课程我们学习了如何给pod打标签及修改pod的标签值。在某些特殊情况下,需要将某些服务固定在一台宿主机上, ...

  • k8s集群的搭建实战分享

    1. k8s简介与本文目的 1.1. 概述 k8s 本身涉及到大量的技术知识,包括操作系统、网络、存储、调度、分布...

  • k8s 存储

    k8s 存储

  • k8s快速入门-概念

    k8s快速入门 k8s的四组基本概念 Pod/Pod控制器 Name/Namespace Lable/Label选...

  • 七 Kubernetes服务发布入门

    (一) Label& Selector Label:对k8s中各种资源进行分类、分组,添加一个具有特别属性的标签S...

  • k8s动态存储nfs部署

    k8s中存储分为静态存储以及动态存储。k8s提供了一套可以自动创建PV的机制,即:Dynamic Provisio...

  • Namespace

    在k8s里面,有一些group & manage resources的方式,比如Label,Namespace。 ...

  • Label

    在k8s里面,有一些group & manage resources的方式,比如Label,Namespace。 ...

  • 阅读K8S文档

    k8s文档链接 康威定律 在看Label这一段的时候,提到了设计Label的动机,出现了康威定律。Flag 康威定...

  • k8s数据持久化

    k8s支持的共享存储方案以及各种方案的差异 k8s支持的存储类型 1 宿主机: emptyDir、HostPat...

网友评论

      本文标题:K8S存储之label操作

      本文链接:https://www.haomeiwen.com/subject/wylfdrtx.html