kubernetes集群编排(6)

news2024/11/23 21:21:43

目录

k8s调度

nodename

nodeselector

nodeaffinity

podaffinity

podantiaffinity

Taints

cordon、drain、delete


k8s调度

nodename

[root@k8s2 node]# vim nodename.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx

spec:
  containers:
  - name: nginx
    image: nginx
  nodeName: k8s3		
[root@k8s2 node]# kubectl apply -f nodename.yaml

[root@k8s2 node]# kubectl delete -f nodename.yaml

nodeselector

NodeSelector是Kubernetes中一个用于选择节点的机制。它是一种标签选择器,可以根据选择器定义匹配节点标签,并将Pod调度到这些匹配的节点上

[root@k8s2 node]# vim nodeselector.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd

[root@k8s2 node]# kubectl label  nodes k8s4 disktype=ssd
[root@k8s2 node]# kubectl label  nodes k8s3 disktype=ssd

[root@k8s2 node]# kubectl apply -f nodeselector.yaml

[root@k8s2 node]# kubectl delete -f nodeselector.yaml

nodeaffinity

[root@k8s2 node]# vim nodeaffinity.yaml
apiVersion: v1
kind: Pod
metadata:
  name: node-affinity
spec:
  containers:
  - name: nginx
    image: nginx
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
           nodeSelectorTerms:
           - matchExpressions:
             - key: disktype
               operator: In
               values:
                 - ssd
                 - fc

      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: kubernetes.io/hostname
            operator: NotIn
            values:
            - k8s3

[root@k8s2 node]# kubectl apply -f nodeaffinity.yaml
[root@k8s2 node]# kubectl describe  pod node-affinity

[root@k8s2 node]# kubectl delete -f nodeaffinity.yaml

podaffinity

[root@k8s2 node]# vim podaffinity.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - nginx
            topologyKey: "kubernetes.io/hostname"

[root@k8s2 node]# kubectl apply -f podaffinity.yaml

[root@k8s2 node]# kubectl delete -f podaffinity.yaml

podantiaffinity

[root@k8s2 node]# vim podantiaffinity.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - nginx
            topologyKey: "kubernetes.io/hostname"

[root@k8s2 node]# kubectl apply -f podantiaffinity.yaml

[root@k8s2 node]# kubectl delete -f podantiaffinity.yaml

Taints

[root@k8s2 node]# vim taint.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: nginx
        name: nginx

[root@k8s2 node]# kubectl apply -f taint.yaml

设置taint

root@k8s2 pod]# kubectl taint node k8s3 k1=v1:NoSchedule
[root@k8s2 pod]# kubectl describe nodes  k8s3 |grep Tain

[root@k8s2 pod]# kubectl scale deployment web --replicas 6

[root@k8s2 pod]# kubectl taint node k8s3 k1=v1:NoExecute
[root@k8s2 pod]# kubectl describe nodes  k8s3 |grep Tain

设置 tolerations

[root@k8s2 node]# vim taint.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 6
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      tolerations:
      - operator: Exists
        effect: NoSchedule
      containers:
      - image: nginx
        name: nginx

[root@k8s2 node]# kubectl apply -f taint.yaml

容忍所有taints

[root@k8s2 node]# vim taint.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 6
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      tolerations:
      - operator: Exists
      containers:
      - image: nginx
        name: nginx

[root@k8s2 node]# kubectl apply -f taint.yaml

回收、删除taints

[root@k8s2 node]# kubectl delete -f taint.yaml
[root@k8s2 node]# kubectl taint  node k8s3 k1-

cordon、drain、delete

[root@k8s2 node]# kubectl create deployment demo --image nginx --replicas 3
[root@k8s2 node]# kubectl cordon k8s3
[root@k8s2 node]# kubectl get node

[root@k8s2 node]# kubectl scale deployment demo --replicas 6

[root@k8s2 node]# kubectl drain k8s3 --ignore-daemonsets

[root@k8s2 node]# kubectl delete nodes k8s3
[root@k8s2 node]# kubectl get node

k8s3节点重启kubelet服务重新加入集群

[root@k8s3 ~]# systemctl restart kubelet
[root@k8s2 node]# kubectl get node

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Markov Chain Fingerprinting to Classify Encrypted Traffic 论文笔记

0.Abstract 在本文中,提出了用于SSL/TLS会话中传输的应用程序流量的随机指纹。这个指纹基于一阶齐次马尔可夫链,模型识别应用程序的准确率,并提供了检测异常对话的可能性。 1.Introduction 通过SSL/TLS会话时的头部信息创建统计指纹&#xff…

贝塞尔曲线和曲面原理

文章目录 贝塞尔曲线1.伯恩斯坦多项式法2.德卡斯特里奥算法(de Casteljau Algorithm) 贝塞尔曲面实验结果 贝塞尔曲线 给出一系列点(一般称为控制点),贝塞尔曲线可以利用这些点得到一个平滑的曲线,贝塞尔曲…

机器学习模型,超级全面总结!

机器学习是一种通过让计算机自动从数据中学习规律和模式,从而完成特定任务的方法。按照模型类型,机器学习可以分为两大类:监督学习模型和无监督学习模型。 附注:除了以上两大类模型,还有半监督学习和强化学习等其他类…

MicroStation二次开发问题记录(1):打开项目时自动加载dll文件

环境配置 Windows10 MicroStation CE Update16 Visual Studio 2019 前言 开发好的dll文件若每次都需要在打开MS时单独加载,则过于繁琐,因此可以在确定的工程项目文件中进行一次设置,在打开该文件时自动加载 一、加载dll文件 1. 点击File—Se…

计算机找不到MSVCR120.dll,MSVCR120.dll丢失的三种解决方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“MSVCR120.dll丢失”。这个错误通常出现在运行某些程序时,导致程序无法正常启动。那么,如何解决MSVCR120.dll丢失的问题呢?小编将详细介绍解决方法&#…

Luatos Air700 改变BL0942串口波特率

LuatOs 改变模块串口波特率思路参照 luatos 改变AIR530串口波特率 BL0942默认串口波特率可以通过SCLK_BPS引脚接3.3V电源设置到9600bps 但如果调整到38400bps需要修改0x19寄存器 bl0942 v1.06版的特殊寄存器说明,注意早期版本特殊寄存器说明存在错误 完整代码 -- L…

Java进阶(再论线程)——线程的4种创建方式 线程的生命周期 线程的3大特性 集合中的线程安全问题

前言 多线程作为编程语言中的难点,虽然初级程序员可能很少遇到线程相关的开发任务,但是作为程序员,持续学习和保持对编程的热爱,要求我们对于线程也需要有一定的认识。 本篇博客介绍Java中创建线程的4种方式,并进行了…

【环境装配】Anaconda在启动时闪现黑框,闪几次后仍能正常使用,解决黑框问题

anaconda闪黑框这个问题遇到好久了,也没找到相关资料来解决,今天做了两个更新,刚好可以不闪黑框了,记录一下。 更新anaconda 在界面右上角的位置点击更新,更新完后再打开时只闪现两个黑框了,之前好像有五…

UE5 c++将自定义UserWdiget添加到对应菜单栏

前言: 为了实现与UserWidget一致的右键添加,便有了此章 注:这里使用的是UE5.3 目标内容: 这里可以参考UserWidget的源码,拷贝一份属于自己的就ok(本篇章只是全改成了属于自己的CommonUserWidget&#xff…

定时发圈怎么设置?

微信本身是不能定时发送朋友圈的。微信公众号可以定时发送,微博可以定时发送,那微信可不可以也定时发送呢?当然可以,只要用这个方法,微信也能实现定时发朋友圈,不用再守着时间发朋友圈了。

USB HID在系统下通信的一些总结

前言 这篇文章主要介绍在PC(上位机,Host)端,通过HID与硬件进行通信的一些总结,像很多同学肯定和我一样压根不想 去了解什么USB相关的资料,毕竟USB太复杂了,只想有个API给我们进行下数据就好了&…

3D视觉引导纸箱拆码垛,助力物流行业转型升级

近年来,自动化和智能化技术在各行业的应用越来越广泛,特别是在物流和仓储领域。纸箱拆码垛是物流仓储中的一个重要环节。 人工分拣效率低、错误率高、成本高,传统的拆码垛设备存在兼容性差,对纸箱的识别率不高、操作不灵活等问题…

【分布式事务】初步探索分布式事务的概率和理论,初识分布式事的解决方案 Seata,TC 服务的部署以及微服务集成 Seata

文章目录 一、分布式服务案例1.1 分布式服务 demo1.2 演示分布式事务问题 二、分布式事务的概念和理论2.1 什么是分布式事务2.2 CAP 定理2.3 BASE 理论2.4 分布式事务模型 三、分布式事务解决方案 —— Seata3.1 什么是 Seata3.2 Seata 的架构3.3 Seata 的四种分布式事务解决方…

渗透实战靶机2wp

0x00 简介 1、测试环境 目标IP:10.xxxx 测试IP:192.168.139.128 测试环境:win10、kali等 测试时间:2021.7.22-2021.7.22 测试人员:ruanruan 2、测试过程 本次实战主要通过对收集到的端口、目录等信息进行持续整…

​怎么测试websocket接口

在部分业务中,我们需要使用长连接,我们可以使用http长连接或者websocket,开发结束后难免会遇到测试问题,这里推荐2个,一个是postman,一个是网站 postman 测试网站 测这边推荐测试网站,支持ws/w…

赴日工作赴日IT 如何找到一份日本IT工作?

IT在日本属于普通白领工作,那些想靠IT工作发财就不必考虑了。但是靠IT工作能安安稳稳的过个自己的小日子没问题,买房买车问题不大,作为一个普通人,在日本可以过的比较舒服。对有在日本长期发展的打算的还算是一个比较好的方向&…

Vue创建浅层响应式数据

shallowReactive:只处理对象第一层数据的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式,不处理对象类型的响应式。 shallowReactive 适用于:如果有一个对象类型的数据,结构比较深…

【软考】2023下半年系统集成项目管理工程师案例分析真题(第五批次)

2023下半年系统集成项目管理工程师案例分析真题(第五批次) 案例一 (17分)-配置管理案例二 (20分)-进度管理案例三 (18分)-风险管理案例四 - 人力资源管理 系列文章版本记录 案例一 (17分)-配置管理 某游戏公…

【Spring】@Component组件

大前提&#xff1a; 添加了相关的约束文件以及注解支持 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:…

理解JavaScript模运算符

本文翻译自 Understanding the JavaScript Modulo Operator&#xff0c;作者&#xff1a;joshwcomeau&#xff0c; 略有删改。 当我第一次学习编码时&#xff0c;我记得发现模运算符&#xff08;%&#xff09;非常令人困惑。&#x1f62c; 当你不明白它的原理的时候&#xff0…