Kubernets二进制安装(10)之部署主控节点部署调度器服务kube-scheduler
Kubernetes Scheduler是一个策略丰富、拓扑感知、工作负载特定的功能,调度器显著影响可用性、性能和容量。调度器需要考虑个人和集体的资源要求、服务质量要求、硬件/软件/政策约束、亲和力和反亲和力规范、数据局部性、负载间干扰、完成期限等。工作负载特定的要求必要时将通过 API 暴露。
kube-scheduler是Kube-Master相关的3个服务之一(ApiServer、Controller Manager、Scheduler),是有状态的服务,会修改集群的状态信息。
如果多个master节点上的相关服务同时生效,则会有同步与一致性问题,所以多master节点中的kube-scheduler服务只能是主备的关系,kukubernetes采用租赁锁(lease-lock)实现leader的选举,具体到kube-scheduler,设置启动参数"--leader-elect=true"。
集群规划
主机名 | 角色 | IP地址 |
---|---|---|
mfyxw30.mfyxw.com | kube-scheduler | 192.168.80.30 |
mfyxw40.mfyxw.com | kube-scheduler | 192.168.80.40 |
1.创建kube-scheduler启动脚本
在mfyxw30.mfyxw.com主机上创建kube-scheduler启动脚本
[root@mfyxw30 ~]# cat > /opt/kubernetes/server/bin/kube-scheduler.sh << EOF
#!/bin/sh
./kube-scheduler \\
--leader-elect \\
--log-dir /data/logs/kubernetes/kube-scheduler \\
--master http://127.0.0.1:8080 \\
--v 2
EOF
在mfyxw40.mfyxw.com主机上创建kube-scheduler启动脚本
[root@mfyxw40 ~]# cat > /opt/kubernetes/server/bin/kube-scheduler.sh << EOF
#!/bin/sh
./kube-scheduler \\
--leader-elect \\
--log-dir /data/logs/kubernetes/kube-scheduler \\
--master http://127.0.0.1:8080 \\
--v 2
EOF
2.调整文件权限,创建目录
在mfyxw30.mfyxw.com主机上调整kube-scheduler.sh文件权限,创建目录/data/logs/kubernetes/kube-scheduler
[root@mfyxw30 ~]# chmod +x /opt/kubernetes/server/bin/kube-scheduler.sh
[root@mfyxw30 ~]# mkdir -p /data/logs/kubernetes/kube-scheduler
在mfyxw40.mfyxw.com主机上调整kube-scheduler.sh文件权限,创建目录/data/logs/kubernetes/kube-scheduler
[root@mfyxw40 ~]# chmod +x /opt/kubernetes/server/bin/kube-scheduler.sh
[root@mfyxw40 ~]# mkdir -p /data/logs/kubernetes/kube-scheduler
3.为kube-scheduler创建supervisor配置文件
在mfyxw30.mfyxw.com主机上,为kube-scheduler创建supervisor配置文件
[root@mfyxw30 ~]# cat > /etc/supervisord.d/kube-scheduler.ini << EOF
[program:kube-scheduler-80-30]
command=/opt/kubernetes/server/bin/kube-scheduler.sh ; the program (relative uses PATH, can take args)
numprocs=1 ; number of processes copies to start (def 1)
directory=/opt/kubernetes/server/bin ; directory to cwd to before exec (def no cwd)
autostart=true ; start at supervisord start (default: true)
autorestart=true ; retstart at unexpected quit (default: true)
startsecs=30 ; number of secs prog must stay running (def. 1)
startretries=3 ; max # of serial start failures (default 3)
exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
user=root ; setuid to this UNIX account to run the program
redirect_stderr=false ; redirect proc stderr to stdout (default false)
stdout_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stdout.log ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=64MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=4 ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false ; emit events on stdout writes (default false)
stderr_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stderr.log ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=64MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=4 ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false ; emit events on stderr writes (default false)
EOF
在mfyxw40.mfyxw.com主机上,为kube-scheduler创建supervisor配置文件
[root@mfyxw40 ~]# cat > /etc/supervisord.d/kube-scheduler.ini << EOF
[program:kube-scheduler-80-40]
command=/opt/kubernetes/server/bin/kube-scheduler.sh ; the program (relative uses PATH, can take args)
numprocs=1 ; number of processes copies to start (def 1)
directory=/opt/kubernetes/server/bin ; directory to cwd to before exec (def no cwd)
autostart=true ; start at supervisord start (default: true)
autorestart=true ; retstart at unexpected quit (default: true)
startsecs=30 ; number of secs prog must stay running (def. 1)
startretries=3 ; max # of serial start failures (default 3)
exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
user=root ; setuid to this UNIX account to run the program
redirect_stderr=false ; redirect proc stderr to stdout (default false)
stdout_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stdout.log ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=64MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=4 ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false ; emit events on stdout writes (default false)
stderr_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stderr.log ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=64MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=4 ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false ; emit events on stderr writes (default false)
EOF
4.启动服务并检查
在mfyxw30.mfyxw.com主机上启动kube-scheduler服务并检查
[root@mfyxw30 ~]# supervisorctl update
[root@mfyxw30 ~]# supervisorctl status
在mfyxw40.mfyxw.com主机上启动kube-scheduler服务并检查
[root@mfyxw40 ~]# supervisorctl update
[root@mfyxw40 ~]# supervisorctl status
5.为kubectl创建链接并查看集群健康
在mfyxw30.mfyxw.com主机上为kubectl创建链接并查看集群健康
[root@mfyxw30 ~]# ln -s /opt/kubernetes/server/bin/kubectl /usr/bin/kubectl
[root@mfyxw30 ~]# kubectl get cs
在mfyxw40.mfyxw.com主机上为kubectl创建链接并查看集群健康
[root@mfyxw40 ~]# ln -s /opt/kubernetes/server/bin/kubectl /usr/bin/kubectl
[root@mfyxw40 ~]# kubectl get cs
Kubernets二进制安装(10)之部署主控节点部署调度器服务kube-scheduler的更多相关文章
- Kubernets二进制安装(9)之部署主控节点控制器controller-manager
kube-controller-manager运行控制器,它们是处理集群中常规任务的后台线程 Controller Manager就是集群内部的管理控制中心,由负责不同资源的多个Controller构 ...
- Kubernets二进制安装(6)之部署主控节点服务--etcd
Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息. 整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是 网络插件 ...
- Kubernets二进制安装(7)之部署主控节点服务--apiserver简介
API Server简介 Kubernetes API Server提供了K8S各类资源对象(如:pod.RC.Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和 ...
- Kubernets二进制安装(13)之部署Flannel
Flannel简介 Flannel是CoreDNS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址 ...
- mysql二进制安装,升级,多实例部署
目标 理解线上部署考虑的因素 学会编译安装以及二进制安装mysql 学会升级mysql 学会多实例部署mysql数据库 学会合理部署mysql线上库 考虑因素: 版本选择,5.1,5.5还是5.6 ...
- Kubernets二进制安装(7)之部署主控节点服务--apiserver二进制安装
kube-apiserver集群规划 主机名 角色 IP地址 mfyxw30.mfxyw.com kube-apiserver主 192.168.80.30 mfyxw40.mfyxw.com kub ...
- Kubernets二进制安装(12)之部署Node节点服务的kube-Proxy
kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服 ...
- Kubernets二进制安装(11)之部署Node节点服务的kubelet
集群规划 主机名 角色 IP地址 mfyxw30.mfyxw.com kubelet 192.168.80.30 mfyxw40.mfyxw.com kubelet 192.168.80.40 注意: ...
- Kubernets二进制安装(8)之部署四层反向代理
四层反向代理集群规划 主机名 角色 IP地址 mfyxw10.mfyxw.com 4层负载均衡(主) 192.168.80.10 mfyxw20.mfyxw.com 4层负载均衡(从) 192.168 ...
随机推荐
- Linux设置开机自动挂载镜像文件
1.将文件上传到服务器上(本例上传到/Data/software下) 2.挂载 mount -o loop /Data/software/rhel-server-7.6-x86_64-dvd.iso ...
- undefined和null区别
undefined类型只有一个值就是undefined,没有必要显式地声明一个变量为undefined. null类型其实就是一个对象的空指针,所以用typeof null 才会显示为object. ...
- 使用Logback日志
使用Logback日志 spring boot内部使用Logback作为日志实现的框架. Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会得心应手. logba ...
- kettle数据质量统计
1.利用Kettle的"分组","JavaScript代码","字段选择"组件,实现数据质量统计.2.熟练掌握"JavaScrip ...
- 代码 or 指令,浅析ARM架构下的函数的调用过程
摘要:linux程序运行的状态以及如何推导调用栈. 1.背景知识 1.ARM64寄存器介绍: 2.STP指令详解(ARMV8手册): 我们先看一下指令格式(64bit),以及指令对于寄存机执行结果的影 ...
- 基于Vue的npm组件库
前言(*❦ω❦) 思维导图可能有点高糊,有点太大了,项目和导图文件放到github或giteee上,这个思维导图也是我文章的架构,思维导图是用FeHelper插件生成的,这个是一款开源chrome插件 ...
- Linux常用命令:文件操作命令
Linux系统命令主要包括文件操作.网络命令和性能命令,本文介绍常用文件操作命令. 修改文件属性 文件类型: 普通文件:- 目录文件:d 块设备文件:b,硬盘 字符设备: c,串行端口的接口设备,例如 ...
- Redis下载及安装(windows版)
下载地址1.Github下载地址:https://github.com/MicrosoftArchive/redis/releases2.百度网盘下载地址 https://pan.baidu.com/ ...
- Python学习【第5篇】:数据类型和变量总结
字符串,数字,列表,元组,字典 可变不可变 1.可变:列表 如: p.p1 { margin: 0; font: 11px Menlo; color: rgba(0, 0, 0, 1); backgr ...
- 用tqdm和rich为固定路径和目标的python算法代码实现进度条
适用场景 在存在固定长度的算法中可以可视化算法执行的过程,比如对一个固定长度的数组的遍历,就是一种适合使用进度条来进行可视化的场景.而一些条件循环,比如while循环,不一定适合使用进度条来对算法执行 ...