当前位置:网站首页 > 编程语言 > 正文

kubelete(kubelet二进制文件)



二进制部署kubernetes集群(上篇)

准备5台2c/2g/50g虚拟机,使用10.4.7.0/24 网络 。//因后期要直接向k8s交付java服务,因此运算节点需要4c8g。不交付服务,全部2c2g足够。

操作系统:预装CentOS7.6操作系统。//因docker完美支持对内核有需求,所有操作系统全部CentOS 7.x(需要内核3.8以上)

做好系统基础优化。

关闭selinux,关闭firewalld服务

时间同步(chronyd)

调整Base源,Epel源

内核优化(文件描述符大小,内核转发,等等)

主机名 角色 ip 部署服务与组件 硬件配置 hdss7-11.host.com k8s proxy 主 10.4.7.11 bind9、nginx(L4)、keepalived、supervisor 2C 2G 50G hdss7-12.host.com k8s proxy 备 10.4.7.12 etcd、nginx(L4)、keepalived、supervisor 2C 2G 50G hdss7-21.host.com k8s 运算节点1 10.4.7.21 etcd、kube-apiserver、kube-controller-manager、kube-scheduler kube-kubelet、kube-proxy,supervisor 4C 8G 50G hdss7-22.host.com k8s 元算节点2 10.4.7.22 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kube-kubelet、kube-proxy,supervisor 4C 8G 50G hdss7-200.host.com k8s 运维节点,docker仓库 10.4.7.200 docker 私有仓库、资源配置清单仓库、提供共享存储(NFS)、签发证书 2C 2G 50G

2.1.1.VM虚拟网络编辑器设置

二进制部署kubernetes集群(上篇)

2.1.2.Windows网卡设置

二进制部署kubernetes集群(上篇)

2.2.1.设置主机名

2.2.2.关闭防火墙和selinux

2.2.3.设置网卡

2.2.4.设置yum源

2.2.5.安装常用工具

proxy主节点hdss7-11.host.com 上

2.3.1.安装bind 9

2.3.2.配置bind 9

2.3.3.检查配置并启动bind 9

2.3.4.检查

2.3.5.配置DNS客户端

linux主机所有
windows主机

2.3.6.检查

运维主机hdss7-200.host.com 上

2.4.1.安装CFSSL

证书签发工具CFSSL:R1.2

2.4.2.创建生成CA证书签名请求(csr)的json配置文件

2.4.3.生成CA证书和私钥

hdss7-200.host.com

hdss7-21.host.com

hdss7-22.host.com上

2.5.1.安装

报错:

二进制部署kubernetes集群(上篇)

解决:

2.5.2.配置

2.5.3.启动

运维主机hdss7-200.host.com 上

2.6.1.下载软件二进制包并解压

2.6.2.配置

2.6.3.安装docker-compose

2.6.4.安装harbor

2.6.5.检查harbor启动情况

2.6.6.配置harbor的dns内网解析

2.6.7.安装nginx并配置

2.6.8.浏览器打开http://harbor.od.com

1、浏览器输入:harbor.od.com 用户名:admin 密码:Harbor12345

二进制部署kubernetes集群(上篇)

2、新建项目

二进制部署kubernetes集群(上篇)

3、下载测试镜像并打给镜像打一个tag

4、登陆harbor并推送到仓库

2.6.9.检查

可以看到nginx镜像已推送到public下

二进制部署kubernetes集群(上篇)

3.1.1.集群规划

主机名 角色 ip 地址 hdss7-12.host.com etcd lead 10.4.7.12 hdss7-21.host.com etcd follow 10.4.7.21 hdss7-22.host.com etcd follow 10.4.7.22

注意:这里部署文档以hdss7-12.host.com为例,另外两台部署方法类似

3.1.2.创建基于根证书的config配置文件

hdss7-200上创建

3.1.3.创建生成自签证书的签名请求(csr)的 json配置文件

3.1.4.生成etcd证书和私钥

3.1.5.检查生成的证书和私钥

3.1.6.创建etcd用户

hdss7-12上

3.1.7.下载软件,解压,做软链接

3.1.8.创建目录,拷贝证书,私钥

创建证书目录、数据目录、日志目录
拷贝3.1.4生成的证书文件

3.1.9.创建etcd服务启动脚本

etcd集群各主机启动配置略有不同,配置其他节点时注意修改

3.1.10.调整目录权限

3.1.11.安装supervison软件

supervison是一个管理后台进程的软件,etcd进程掉了会自动拉起来

3.1.12.创建etcd-server的启动配置

etcd集群各主机启动配置略有不同,配置其他节点时注意修改

3.1.13.启动etcd服务并检查

3.1.14.安装部署启动检查所有集群

和上述无区别,最主要是修改两个配置文件:

1、/opt/etcd/etcd-server-startup.sh的ip地址,

2、/etc/supervisord.d/etcd-server.ini

//修改supervisord启动ini文件的program标签,是为了更好区分主机,生产规范,强迫症患者的福音,不修改不会造成启动失败

3.1.15.检查集群状态

任意节点输入

3.2.1.集群规划

主机名 角色 ip vip hdss7-21.host.com kube-apiserver 10.4.7.21 无 hdss7-22.host.com kube-apiserver 10.4.7.22 无 hdss7-11.host.com L4 10.4.7.11 10.4.7.10 hdss7-12.host.com L4 10.4.7.12 10.4.7.10

注意:hdss7-11和hdss7-12使用nginx做4层负载均衡器,keepalived跑一个VIP:10.4.7.10,代理两个kube-apiserver,实现高可用。

这里以hdss21为例,另外一台运算节点部署方法类似

3.2.2.下载软件,解压,做软链接

hdss7-21.host.com上

3.2.3.签发client证书

运维主机hdss7-200上

3.2.3.1.创建生成证书签名请求(csr)的json配置文件
3.2.3.2.生成clent证书和私钥
3.2.3.3.检查生成的证书和私钥

3.2.4.签发kube-apiserver证书

运维主机hdss7-200上

3.2.4.1.创建生成证书签名请求(csr)的 json配置文件
3.2.4.2.生成kube-apiserver证书和私钥
3.2.4.3.检查生成的证书和私钥

3.2.5.拷贝证书至各运算节点,并创建配置

3.2.5.1.拷贝3套证书到https://www.miaokee.com/bin/cert目录
3.2.5.2.创建配置

3.2.6.创建apiserver启动脚本

3.2.7.调整权限和目录

3.2.8.创建supervisor配置

3.2.9.启动服务并检查

3.2.10.安装部署启动检查所有集群

hdss7-22 跟上述基本相同

/etc/supervisord.d/kube-apiserver.ini

需要更改成[program:kube-apiserver-7-22]

3.2.11.配四层反向代理

VIP 10.4.7.10:7443代理 两台apiserver的6443端口,此处会用到keepalived

3.2.11.1安装nginx和keepalived
hdss7-11和hdss7-12都安装nginx和keepalived
hdss7-11和hdss7-12配置nginx.conf
hdss7-11和hdss7-12配置keepalived

检查脚本

配置文件

3.2.12.启动代理并检查

注意:keepalived hdss7-11配置 nopreempt,意为非抢占式

原因:如果抢占式,假如生产网络抖动原因,check_port脚本探测不到,VIP有可能会动触发报警,VIP漂移在生产上属于重大生产事故,是要写故障报告的,是无法忍受的

3.3.1.集群规划

主机名 角色 ip hdss7-21.host.com controller-manager 10.4.7.21 hdss7-22.host.com controller-manager 10.4.7.21

注意:这里部署文档以hdss7-21为例,另外一台类似

3.3.2.创建启动脚本

hdss7-21上

3.3.3.调整文件权限,创建目录

3.3.4.创建supervisor配置

3.3.5.启动服务并检查

3.3.6.安装部署启动检查所有集群规划主机

hdss7-22 跟上述基本相同

/etc/supervisord.d/ kube-conntroller-manager.ini

需要更改成[program:kube-conntroller-manager-7-22]

3.4.1.集群规划

主机名 角色 ip hdss7-21.host.com kube-scheduler 10.4.7.21 hdss7-22.host.com kube-scheduler 10.4.7.22

注意:这里部署文档以hdss7-21为例,另一运算节点类似

3.4.2.创建启动脚本

hdss7-21上

3.4.3.调整文件权限,创建目录

3.4.4.创建supervisor配置

3.4.5.启动服务并检查

[root@hdss7-21 bin]# supervisorctl update

kube-scheduler-7-21: added process group

[root@hdss7-21 bin]# supervisorctl status

etcd-server-7-21 RUNNING pid 1716, uptime 4:11:22

kube-apiserver-7-21 RUNNING pid 2032, uptime 2:11:36

kube-controller-manager-7-21 RUNNING pid 2196, uptime 0:27:51

kube-scheduler-7-21 RUNNING pid 2284, uptime 0:00:33

3.4.6.安装部署启动检查所有集群规划主机

hdss7-22 跟上述基本相同

/etc/supervisord.d/ kube-scheduler.ini

需要更改成[program:kube-scheduler-7-22]

3.5.1.建立kubectl软链接

3.5.2.检查主控节点

检查集群健康状态 cs(cluster status)

4.1.1.集群规划

主机名 角色 ip hdss7-21.host.com kubelet 10.4.7.21 hdss7-22.host.com kubelet 10.4.7.22

注意:这里部署文档以 hdss7-21主机为例,另外一台运算节点安装部署方法类似

4.1.2.签发kubelet证书

运维主机hdss7-200上

4.1.2.1.创建生成证书签名请求(csr)的json配置文件
4.1.2.2.生成kubelet证书和私钥
4.1.2.3.检查生成的证书和私钥

4.1.3.拷贝证书到各运算节点,并创建配置

hdss7-21 上

4.1.3.1.拷贝证书,私钥,注意私钥文件属性600
4.1.3.2.创建配置---分四步

都在conf目录下

4.1.3.2.1.set-cluster
4.1.3.2.2.set-credentials
4.1.3.2.3.set-context
4.1.3.2.4.use-context
4.1.3.2.5.查看生成的kubelet.kubeconfig

cat下面的这段实际上就是ca.pem 经过base64编译以后的编码

二进制部署kubernetes集群(上篇)

二进制部署kubernetes集群(上篇)

二进制部署kubernetes集群(上篇)

4.1.3.2.6.k8s-node.yaml

1、创建配置文件

2、根据配置文件创建用户

3、查询集群角色和查看角色属性

4、拷贝kubelet.kubeconfig 到hdss7-22上

4.1.4.准备pause基础镜像

运维主机 hdss7-200上

为什么需要这个pause基础镜像?

原因:需要用一个pause基础镜像把这台机器的pod拉起来,因为kubelet是干活的节点,它帮我们调度docker引擎,边车模式,让kebelet控制一个小镜像,先于我们的业务容器起来,让它帮我们业务容器去设置:UTC、NET、IPC,让它先把命名空间占上,业务容易还没起来的时候,pod的ip已经分配出来了。

4.1.4.1.下载pause镜像

运维主机 hdss7-200

4.1.4.2.提交至docker私有仓库(harbor)中
4.1.4.2.1.给镜像打tag
4.1.4.2.2.推到harbor上

4.1.5.创建kubelet启动脚本

hdss7-21上

注意:kubelet集群个主机的启动脚本略不同,其他节点注意修改:--hostname-override

4.1.6.检查配置,权限,创建日志目录

hdss7-21上

4.1.7.创建supervisor配置

注意:其他主机部署时请注意修改program标签

4.1.8.启动服务并检查

4.1.9.检查运算节点

4.1.10.安装部署启动检查所有集群规划主机

其他节点类似,有些需要稍许调整,上面有标注:

/opt/kubernetes/server/bin/conf/kubelet.kubeconfig

/opt/kubernetes/server/bin/kubelet.sh

/etc/supervisord.d/kube-kubelet.ini

4.1.11.检查所有运算节点

联结pod网络和集群网络

4.2.1.集群规划

主机名 角色 ip hdss7-21.host.com kube-proxy 10.4.7.21 hdss7-22.host.com kube-proxy 10.4.7.21

注意:这里部署以hdss7-21主机为例,其他运算节点类似

4.2.2.签发kube-proxy证书

运维主机hdss7-200上

4.2.2.1.创建生成证书签名请求(csr)的json配置文件
4.2.2.2.生成kubelet证书和私钥
4.2.2.3.检查生成的证书和私钥

4.2.3.拷贝证书至各运算节点,并创建配置

hdss7-21上

4.2.3.1.拷贝证书,私钥,注意私钥文件属性600
4.2.3.2.创建配置

注意必须在conf目录下,否则报错

4.2.3.2.1.set-cluster
4.2.3.2.2.set-credentials
4.2.3.2.3.set-context
4.2.3.2.4.use-context
4.2.3.2.5.拷贝kube-proxy.kubeconfig 到 hdss7-22的conf目录下

4.2.4.创建kube-proxy启动脚本

hdss7-21上

4.2.4.1.加载ipvs模块
4.2.4.2.创建启动脚本

4.2.5.检查配置,权限,创建日志目录

4.2.6.创建supervisor配置

4.2.7.启动服务并检查

4.2.8.安装部署启动检查所有集群规划主机

hdss7-22 跟上述基本相同

/etc/supervisord.d/kube-proxy.ini

需要更改成[program:kube-proxy-7-21]

/opt/kubernetes/server/bin/kube-proxy.sh

需要改成 --hostname-override hdss7-22.host.com

这里选择hdss7-21主机

5.2.1.hdss7-21上的操作

5.2.2.hdss7-22上的操作

5.2.3.查看kubernetes集群上篇是否搭建好

5.2.4.FAQ:

5.2.4.1.:kube-proxy启动之后,用不了ipvs模式,查看日志发现如下报错
到此这篇kubelete(kubelet二进制文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 重绘(重绘幅度)2025-02-22 21:27:04
  • 苹果电脑安装双系统还可以调回原来系统吗(苹果电脑安装了双系统)2025-02-22 21:27:04
  • 16进制转换工具app(16进制转换工具)2025-02-22 21:27:04
  • awvs下载(awvs官网下载)2025-02-22 21:27:04
  • aw aw什么意思(aw是什么简称)2025-02-22 21:27:04
  • 十大最强法则玄幻动漫(十大最强法则玄幻动漫有哪些)2025-02-22 21:27:04
  • ad9708原理图(AD9708原理图)2025-02-22 21:27:04
  • 好玩的代码游戏马里奥(超级马里奥游戏代码)2025-02-22 21:27:04
  • 来自远方的小说文集百度云(来自远方小说集下载百度云)2025-02-22 21:27:04
  • ov内存卡是什么牌子(ov内存卡是杂牌吗)2025-02-22 21:27:04
  • 全屏图片