第24关 揭秘K8s部署优化:利用亲和性、反亲和性、污点、容忍和节点选择器的威力

------> 课程视频同步分享在今日头条和B站

大家好,我是博哥爱运维。

学习这些枯燥难懂的知识点,最好的方式就是利用实战内容进行讲解。在第12关 精通K8s下的Ingress-Nginx控制器:生产环境实战配置指南中,我们部署了ingress-nginx-controller,对于这个服务的yaml配置,里面就完美贴合了这节课我们要讲的所有内容,包含了亲和性、反亲和性、污点、容忍和节点选择器的使用,后面我们在其他生产服务上使用,依葫芦画瓢即可。

---
apiVersion: apps/v1
kind: DaemonSet
#kind: Deployment
metadata:name: nginx-ingress-controllernamespace: kube-systemlabels:app: ingress-nginxannotations:component.revision: "2"component.version: 1.9.3
spec:# Deployment need:# ----------------
#  replicas: 1# ----------------selector:matchLabels:app: ingress-nginxtemplate:metadata:labels:app: ingress-nginxannotations:prometheus.io/port: "10254"prometheus.io/scrape: "true"spec:# DaemonSet need:# ----------------hostNetwork: true# ----------------affinity:podAntiAffinity:  #反亲和性preferredDuringSchedulingIgnoredDuringExecution:- podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: Invalues:- ingress-nginxtopologyKey: kubernetes.io/hostnameweight: 100nodeAffinity:  #节点亲和性requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: typeoperator: NotInvalues:- virtual-kubelet- key: k8s.aliyun.comoperator: NotInvalues:- "true"containers:- args:- /nginx-ingress-controller- --election-id=ingress-controller-leader-nginx- --ingress-class=nginx- --watch-ingress-without-class- --controller-class=k8s.io/ingress-nginx- --configmap=$(POD_NAMESPACE)/nginx-configuration- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services- --udp-services-configmap=$(POD_NAMESPACE)/udp-services- --annotations-prefix=nginx.ingress.kubernetes.io- --publish-service=$(POD_NAMESPACE)/nginx-ingress-lb- --validating-webhook=:8443- --validating-webhook-certificate=/usr/local/certificates/cert- --validating-webhook-key=/usr/local/certificates/key- --enable-metrics=false- --v=2env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: LD_PRELOADvalue: /usr/local/lib/libmimalloc.soimage: registry-cn-hangzhou.ack.aliyuncs.com/acs/aliyun-ingress-controller:v1.9.3-aliyun.1imagePullPolicy: IfNotPresentlifecycle:preStop:exec:command:- /wait-shutdownlivenessProbe:failureThreshold: 5httpGet:path: /healthzport: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 1successThreshold: 1name: nginx-ingress-controllerports:- name: httpcontainerPort: 80protocol: TCP- name: httpscontainerPort: 443protocol: TCP- name: webhookcontainerPort: 8443protocol: TCPreadinessProbe:failureThreshold: 3httpGet:path: /healthzport: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 1successThreshold: 1
#        resources:
#          limits:
#            cpu: 1
#            memory: 2G
#          requests:
#            cpu: 1
#            memory: 2GsecurityContext:allowPrivilegeEscalation: truecapabilities:drop:- ALLadd:- NET_BIND_SERVICErunAsUser: 101# if get 'mount: mounting rw on /proc/sys failed: Permission denied', use:
#          privileged: true
#          procMount: Default
#          runAsUser: 0volumeMounts:- name: webhook-certmountPath: /usr/local/certificates/readOnly: true- mountPath: /etc/localtimename: localtimereadOnly: truednsPolicy: ClusterFirstinitContainers:- command:- /bin/sh- -c- |if [ "$POD_IP" != "$HOST_IP" ]; thenmount -o remount rw /proc/syssysctl -w net.core.somaxconn=65535sysctl -w net.ipv4.ip_local_port_range="1024 65535"sysctl -w kernel.core_uses_pid=0fienv:- name: POD_IPvalueFrom:fieldRef:apiVersion: v1fieldPath: status.podIP- name: HOST_IPvalueFrom:fieldRef:apiVersion: v1fieldPath: status.hostIPimage: registry.cn-shanghai.aliyuncs.com/acs/busybox:v1.29.2imagePullPolicy: IfNotPresentname: init-sysctlresources:limits:cpu: 100mmemory: 70Mirequests:cpu: 100mmemory: 70MisecurityContext:capabilities:add:- SYS_ADMINdrop:- ALL# if get 'mount: mounting rw on /proc/sys failed: Permission denied', use:privileged: trueprocMount: DefaultrunAsUser: 0# choose node with set this label running# kubectl label node xx.xx.xx.xx boge/ingress-controller-ready=true# kubectl get node --show-labels# kubectl label node xx.xx.xx.xx boge/ingress-controller-ready-nodeSelector:  #节点选择器boge/ingress-controller-ready: "true"priorityClassName: system-node-criticalrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}serviceAccount: ingress-nginxserviceAccountName: ingress-nginxterminationGracePeriodSeconds: 300# 污点# kubectl taint nodes xx.xx.xx.xx boge/ingress-controller-ready="true":NoExecute# kubectl taint nodes xx.xx.xx.xx boge/ingress-controller-ready:NoExecute-# 容忍tolerations:- operator: Exists
#      tolerations:
#      - effect: NoExecute
#        key: boge/ingress-controller-ready
#        operator: Equal
#        value: "true"volumes:- name: webhook-certsecret:defaultMode: 420secretName: ingress-nginx-admission- hostPath:path: /etc/localtimetype: Filename: localtime---

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

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

相关文章

01 概述

概述 本套课程是2023年12月17日以后编写的,适用于NodeJS20Vite5Vue3的一套视频课,非常适合零基础入门学习Vue3的同学。 本套视频课的教案会免费发布在CSDN、公众号、知乎,简书、掘金等平台,视频课程则会发布在Bilibi网站。 环境…

如何处置网上的老旧信息优化品牌形象?

网络时代,企业没有秘密,一切信息都可以在互联网上找到蛛丝马迹。新企业创办初期往往面聊网络信息缺失,给客户一种不敢信任的感觉,这个时期小马识途建议企业积极发布企业消息,进行网络优化,快速塑造网络品牌…

别小看Python的【print】函数,这些高级用法你知道吗?

文章目录 引言技巧1:格式化输出示例1:使用%s来插入字符串,使用%d来插入整数示例2:使用字符串的format()方法示例3:使用f-string格式化输出 技巧2:控制输出文本的颜色技巧3:将打印结果重定向至文…

PyVMomi 克隆虚拟机时将磁盘改为Thin模式

需求介绍: 之前已经使用pyvmomi库实现了虚拟机的自动备份,不过由于备份的虚拟机都是较为重要的系统,磁盘都是厚置备模式,终于有一天,备份目标的空间不够了,导致几个虚拟机无法备份。在不想增加磁盘的情况下…

【计算机网络】—— 详解码元,传输速率的计算|网络奇缘系列|计算机网络

🌈个人主页: Aileen_0v0🔥系列专栏: 一见倾心,再见倾城 --- 计算机网络~💫个人格言:"没有罗马,那就自己创造罗马~" 目录 码元 速率和波特 思考1 思考2 思考3 带宽(Bandwidth) 📝总结 码元…

YOLOv8算法改进【NO.95】使用在线卷积重新参数化(OREPA)方法改进C2_f模块

前 言 YOLO算法改进系列出到这,很多朋友问改进如何选择是最佳的,下面我就根据个人多年的写作发文章以及指导发文章的经验来看,按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通: 第一,创新主干特征提取网络,将整个Backbone改…

Linux+Docker+Gitee+Jenkins自动化部署.NET Core服务

目录 一、安装Jenkins 1、跟新yum包 2、查询镜像 3、拉取镜像 4、创建Jenkins工作目录,并将容器内目录挂载到此目录上 5、启动Jenkins容器 二、Jenkins配置 1、Jenkins安装gitee码云插件 2、创建私人令牌 3、Jenkins添加全局凭据 4、系统配置 三、构建任…

C++之程序生成

一、C的发展史 截止到2023年12月,C已经更新了很多版本,并在每个版本中修复了bug和添加了新的特性,ISO C委员会每三年会对C进行一次更新: C98:于1998年发布,是最早的国际标准化版本。它包含了面向对象编程…

Typescript中Omit数据类型的理解

在 TypeScript 中&#xff0c;Omit 是一个内置的工具类型&#xff0c;它用于从对象类型中排除指定的属性&#xff0c;并返回剩余的属性。 Omit 的语法如下所示&#xff1a; type Omit<T, K> Pick<T, Exclude<keyof T, K>>;其中&#xff0c;T 表示原始类型…

【Java后端】Servlet HTTP协议(学习笔记)

Servlet 一、Servlet概述 Servlet&#xff1a;server applet 服务器的小程序 Servlet是一个定义了Java类被浏览器访问到(tomcat识别)的规则接口 二、注解配置Servlet 创建JavaEE项目&#xff0c;选择Servlet的版本3.0以上&#xff0c;可以不创建web.xml定义一个类&#xf…

D3D12可编程渲染流水线

一、初始化D3D库 启用 DirectX数学库 x86需要启用SSE2指令集&#xff0c;所有平台均需将浮点模型设置为fast。默认为&#xff1a; 精度 (/fp:precise)。 #include <DirectXMath.h> #include <DirectXPackedVector.h> 启用调试模式下的内存泄漏检测 // Enabl…

CCF-CSP真题《202309-5 阻击》思路+ c++满分题解

想查看其他题的真题及题解的同学可以前往查看&#xff1a;CCF-CSP真题附题解大全 试题编号&#xff1a;202309-5试题名称&#xff1a;阻击时间限制&#xff1a;2.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 问题描述 上回提到&#xff0c;西西艾弗岛下方有一个庞大的遗…

Auto.js pro 8.4.1 与 Auto.js pro 9.3.11

已分享出Auto.js Pro8.4.1完美免登录版本 1.在官方基础上支持x86 32位的模拟器运行。Auto.js Pro 8.4.10的官方版本&#xff0c;只有arm64的lib库&#xff0c;不支持雷电模拟器的7.0系统&#xff0c;于是就是找了个v7a的库塞了进去&#xff0c;方便了调试&#xff1b; 2.去除…

【面试】广告优化

a1&#xff1a;点击率公式是什么&#xff1f;点击率低的原因是什么&#xff1f; 点击率点击/曝光&#xff0c;点击率低的原因主要有两点&#xff1a;一是创意不吸引人&#xff1b;二是目标受众不准确/定向过宽不精确&#xff0c;广告曝光给了对产品不感兴趣用户 a2&#xff1a;…

mysql学习记录

insert into table_nameA(字段名) select 字段名 from table_nameA&#xff08;按照一般的select语句格式进行&#xff09; 通过此语句&#xff0c;可以根据需要抓取数据组成新记录落表 存储过程&#xff1a; 创建&#xff1a; CREATE PROCEDURE pro_name&#xff08; IN o…

mysql !=索引为什么失效

可以先看这个&#xff1a;Mysql查询条件为大于时&#xff0c;不走索引失效场景-CSDN博客 如下建立了联合索引&#xff0c; 注意查询phone是用不对劲了索引&#xff0c;key_len82 改为 !时&#xff0c; key key_len没内容&#xff0c;说明没有走索引&#xff0c;为什么没有走&…

【Linux】线程控制:线程创建、终止、等待、分离等

注意&#xff1a; 以下所有的接口都是使用的Linux下的原生线程库&#xff0c;所有g/gcc编译的时候需要加上参数-lpthread&#xff0c;编译pthread动态库。 1、线程的创建pthread_create 相关接口&#xff0c;创建线程函数&#xff0c;成功返回0&#xff0c;失败返回一个错误码…

DOS 系统(命令行)

文章目录 DOS 系统DOS 常用命令DOS 高级命令DOS 批处理命令DOS 应用场景 DOS 系统 操作系统的发展史&#xff08;DOS/Windows篇&#xff09; DOS操作系统的历史 DOS&#xff08;Disk Operating System&#xff09; 是 磁盘操作系统 的缩写&#xff0c;是一种早期的个人计算机操…

HashMap构造函数解析与应用场景

目录 1. HashMap简介 2. HashMap的构造函数 2.1 默认构造函数 2.2 指定初始容量和加载因子的构造函数 3. 构造函数参数的影响 3.1 初始容量的选择 3.2 加载因子的选择 4. 构造函数的应用场景 4.1 默认构造函数的应用场景 4.2 指定初始容量和加载因子的构造函数的应用…

10天玩转Python第8天:python 文件和异常 全面详解与代码示例

今日内容 文件操作 普通文件的操作json 文件的操作[重点] 异常处理(程序代码运行时的报错) 文件介绍 计算机的 文件&#xff0c;就是存储在某种 长期储存设备 上的一段 数据 作用: 将数据长期保存下来&#xff0c;在需要的时候使用 ​ 1.计算机只认识 二进制(0 1) 2.文件中…