代码编织梦想

pod调度

在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做呢?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式:

  • 自动调度:运行在哪个节点上完全由Scheduler经过一系列的算法计算得出
  • 定向调度:NodeName、NodeSelector
  • 亲和性调度:NodeAffinity、PodAffinity、PodAntiAffinity
  • 污点(容忍)调度:Taints、Toleration

定向调度
定向调度,指的是利用在pod上声明nodeName或者nodeSelector,以此将Pod调度到期望的node节点上。注意,这里的调度是强制的,这就意味着即使要调度的目标Node不存在,也会向上面进行调度,只不过pod运行失败而已。

NodeName
NodeName用于强制约束将Pod调度到指定的Name的Node节点上。这种方式,其实是直接跳过Scheduler的调度逻辑,直接将Pod调度到指定名称的节点。

[root@master ~]# cat pod-base.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-base
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  nodeName: node1   #设置调度

容器是再node1

kubectl get pod -n dev -o wide
NAME       READY   STATUS              RESTARTS   AGE   IP       NODE    NOMINATED NODE   READINESS GATES
pod-base   0/1     ContainerCreating   0          16s   <none>   node1   <none>           <none>

NodeSelector
在这里插入图片描述

给node1和node2da标签

[root@master ~]# kubectl label nodes node1 nodeenv=pro
node/node1 labeled
[root@master ~]# kubectl label nodes node2 nodeenv=test
node/node2 labeled

创建一个pod

[root@master ~]# cat pod-base.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-base
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  nodeSelector:
    nodeenv: pro

pro是node1

kubectl get pod -n dev -o wide
NAME       READY   STATUS    RESTARTS   AGE   IP           NODE    NOMINATED NODE   READINESS GATES
pod-base   1/1     Running   0          19s   10.244.3.3   node1   <none>           <none>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_45637155/article/details/111084385

Linux直接通过端口号杀对应进程,lsof命令无效-爱代码爱编程

一、查看端口号被谁占用 我的某端口号被占用,想查看该端口号究竟被谁占用了 命令(8080是你想查看的端口号):netstat -anp | grep 8080 运行结果:发现是java的某进程占用了我们的端口 二、直接通过端口号杀对应进程 这方法比上一个还要简单,不用管究竟是谁占用了端口号,都可以强制杀死该进程(8080是你想杀的端口号):下面这一

使用tar --checkpoint提权操作 详解--checkpoint-action的参数及作用-爱代码爱编程

如果管理员给予了某个普通用户tar命令的超级管理员操作: 那么我们可以使用tar命令进行提权,命令如下 sudo -u root tar cf /dev/null exploit --checkpoint=1 --checkpoint-action=exec="/bin/bash" -c:创建新的档案文件,相当于打包(-x,相反的操作,拆包)

网络编程:套接字socket函数与绑定信息bind函数-爱代码爱编程

套接字socket函数与绑定信息bind函数 套接字绑定信息(绑定IP和端口)socket函数bind函数struct sockaddr结构体的组成:struct sockaddr_in结构体的组成:总结:编写socket函数与bind函数 套接字 套接字是网络编程中的一种通信机制,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主

Kubernetes-亲和性调度-爱代码爱编程

亲和性调度 kubernetes提供了一种亲和性调度(Affinity)。它在NodeSelector的基础之上的进行了扩展,可以通过配置的形式,实现优先选择满足条件的Node进行调度,如果没有,也可以调度到不满足条件的节点上,使调度更加灵活。 Affinity主要分为三类: nodeAffinity(node亲和性)∶以node为目标,解决pod可以

强制修改/移除 WordPress 主题底部版权标识-爱代码爱编程

目录: 一、常用的方法——直接在主题编辑器里面改 二、万能的方法——在 Linux 系统中改 php 内容 一、常用的方法——直接在主题编辑器里面改 1、打开 WordPress 后台管理,点击【外观】 2、点击【主题编辑器】 3、在主题文件栏,选中【主题页脚】footer.php,这是页脚的 php 文件 4、找到 printf 函数,将后面括号里的

Linux 内存管理 | 地址映射:分段、分页、段页-爱代码爱编程

文章目录 分段分页多级页表快表(TLB)段页式Linux Linux 内存管理 | 物理内存管理:内存碎片、伙伴系统、slab分配器Linux 内存管理 | 虚拟内存管理:虚拟内存空间、虚拟内存分配 在前两篇博客中,我介绍了虚拟内存与物理内存的管理方式,那么对于操作系统来说,它是如何管理它们两个之间的关系的呢?如何进行地址的映射呢?

Kubernetes-容器探测-爱代码爱编程

容器探测 容器探测用于检测容器中的应用实例是否正常工作,是保障业务可用性的一种传统机制。如果经过探测,实例的状态不符合预期,那么kubernetes就会把该问题实例"摘除",不承担业务流量。kubernetes提供了两种探针来实现容器探测,分别是: liveness probes:存活性探针,用于检测应用实例当前是否处于正常运行状态,如果不是,k8s会

十分钟学会MySQL的下载安装(Linux版本),看了的都会-爱代码爱编程

目录 下载MySQL安装MySQL 下载MySQL 选择自己想要下载的MySQL版本,进行下载 官网下载地址:https://downloads.mysql.com/archives/community/ 下面我以5.7.24为例进行下载安装 参数说明: Product Version:产品版本,即MySQL的版本 Operating

centos安装python mysqlclient包报mysql_config no found、Python.h no found、gcc error解决-爱代码爱编程

如果是报OSError: mysql_config not found,则先使用yum list installed | grep xx检查如下包的安装情况。 yum list installed | grep gcc yum list installed | grep mysql yum list installed | grep mariadb yu

2020-12-12-爱代码爱编程

初级脚本的编写 显示centos当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #颜色自定义的变量显示 RED="\E[1;31m" GREEN="echo -e \e[1;32m" END="\E[0m" $GREEN--------------------Host systeminfo-----

CentOs6.9 Error: Cannot find a valid baseurl for repo: base-爱代码爱编程

CentOs6.9 Error: Cannot find a valid baseurl for repo: base yum install lrzsz -y 出现如下错误 Loaded plugins: fastestmirror, security Setting up Install Process Loading mirror speeds fr

树莓派的frp开机自动启动-爱代码爱编程

树莓派的frp开机自动 方法之一:使用systemctl控制开机自动启动,这个方法比较方便好用。 增加两个文件,frps.service和frpc.service,并在开机时自动运行。 1、 #sudo nano /lib/systemd/system/frps.service 在frps.service里写入以下内容: (代码/var/frp/是frp