准备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源
内核优化(文件描述符大小,内核转发,等等)
2.1.1.VM虚拟网络编辑器设置
2.1.2.Windows网卡设置
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.安装
报错:
解决:
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
2、新建项目
3、下载测试镜像并打给镜像打一个tag
4、登陆harbor并推送到仓库
2.6.9.检查
可以看到nginx镜像已推送到public下
3.1.1.集群规划
注意:这里部署文档以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.集群规划
注意: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.集群规划
注意:这里部署文档以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.集群规划
注意:这里部署文档以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.集群规划
注意:这里部署文档以 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编译以后的编码
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.集群规划
注意:这里部署以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二进制文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/53211.html