二进制部署kubernetes集群-v1.15.2

   日期:2024-12-26    作者:hxjc2008 移动:http://oml01z.riyuangf.com/mobile/quote/46207.html
主机名 IP地址 角色 硬件配置 zzgw7-200.host.com 10.4.7.200 k8s运维节点 2c2g zzgw7-11.host.com 10.4.7.11 k8s代理节点 2c2g zzgw7-12.host.com 10.4.7.12 k8s代理节点 2c2g zzgw7-21.host.com 10.4.7.21 k8s计算节点 2c2g zzgw7-22.host.com 10.4.7.22 k8s计算节点 2c2g





部署节点:







添加主机域名,业务域



主机域配置文件


业务域配置文件







所有主机都需要修改


测试访问外网


测试访问内网



部署主机:

证书签发工具CFSSL: R1.2




CN: Common Name,浏览器使用该字段验证网站是否合法,一般写的是域名。非常重要。浏览器使用该字段验证网站是否合法
C: Country, 国家
ST: State,州,省
L: Locality,地区,城市
O: Organization Name,组织名称,公司名称
OU: Organization Unit Name,组织单位名称,公司部门



部署主机:,,.

这里以为例







部署主机:

harbor官网github地址:https://github.com/goharbor/harbor











DNS主机配置:


检查DNS解析



安装 nginx


配置 nginx


启动 nginx



默认登录名: 默认密码:

密码可以在harbor.yml中修改

创建新项目

1.下载测试镜像并打给镜像打一个tag


2.登录harbor仓库


3.上传镜像


4.web 页面检查

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

注意:这里部署文档以zzgw7-12.host.com主机为例,另外两台主机安装部署方法类似。

zzgw7-200主机上创建

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


证书类型

client certificate:客户端使用,用于服务端认证客户端,如etcdctl、etcd proxy、fleetctl、docker客户端

server certificate:服务端使用,客户端以此验证服务端身份,例如docker服务端、kube-apiserver

peer certificate:双向证书,用于etcd集群成员间通信

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


生成证书















Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,








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

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

任意节点




主机名 IP地址 角色 zzgw7-21.host.com 10.4.7.21 kube-apiserver zzgw7-22.host.com 10.4.7.22 kube-apiserver zzgw7-11.host.com 10.4.7.11 4层负载均衡 zzgw7-11.host.com 10.4.7.12 4层负载均衡

这里和使用nginx做4层负载均衡器,用keepalived跑一个vip:,代理两个kube-apiserver,实现高可用

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

操作主机:

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


2. 生成client证书和私钥


3. 检查client证书和私钥



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


2. 生成kube-apiserver证书和私钥


3. 检查kube-apiserver证书与私钥



下载地址:https://github.com/kubernetes/kubernetes/releases





k8s资源配置清单,专门给k8s做日志审计











zzgw7-22 跟上述基本相同
/etc/supervisord.d/kube-apiserver.ini
需要更改成[program:kube-apiserver-7-22]

操作主机:,。

俩个节点除了配置文件有所不同,其余配置完全一致。

部署nginx

安装nginx


配置nginx


启动nginx


部署 keepalive

安装keepalive


编写监控脚本


添加执行权限


配置keepalive(主)


配置keepalive(备)


启动keepalive




主机名 ip地址 角色 zzgw7-21.host.com 10.4.7.21 controller-manager zzgw7-22.host.com 10.4.7.22 controller-manager

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









zzgw7-22 跟上述基本相同
/etc/supervisord.d/kube-controller-manager.ini
需要更改成[program:kube-controller-manager-7-22]

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

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


如果主控节点组件在不同的地方,是需要证书验证的('client-key.pem和client.pem'),实验环境是在一个宿主机,所以这里无需证书.







zzgw7-22 跟上述基本相同
/etc/supervisord.d/ kube-scheduler.ini
需要更改成[program:kube-scheduler-7-22]





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

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

运维主机操作

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


生成证书与私钥文件





只需在一个节点操作即可

set-cluster


set-credentials


set-context


use-context


查看生成的文件



只需在一个节点操作即可

1.创建资源配置文件


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


3.查询集群角色


4.拷贝kubelet.kubeconfig 到zzgw7-22上



操作主机:

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

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

2.下载pause镜像


3.提交至docker私有仓库(harbor)中




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




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



其他节点类似,有些需要稍许调整:
/opt/kubernetes/server/bin/kubelet.sh
/etc/supervisord.d/kube-kubelet.ini



标签功能是特色管理功能之一




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

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

运维主机操作

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


生成kubelet证书和私钥


检查证书与私钥





只需要在主机操作,再将生成的配置文件拷贝到各规划节点即可。

1.切换至conf目录


set-cluster


set-credentials


set-context


use-context


查看生成配置文件


拷贝kube-proxy.kubeconfig 到 zzgw7-22



查看ipvs模块是否开启


开启ipvs模块


检测ipvs模块是否开启




注意:其他主机部署时请注意修改该主机的主机名




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



zzgw7-22 跟上述基本相同
/etc/supervisord.d/kube-proxy.ini
需要更改成[program:kube-proxy-7-21]

/opt/kubernetes/server/bin/kube-proxy.sh
需要改成 --hostname-override zzgw-22.host.com






问题:跨宿主机的pod资源,无法访问。

解决方案:通过CNI网络插件实现POD资源能够跨宿主机就行通信

主机名 服务 ip zzgw7-21.host.com flannel 10.4.7.21 zzgw7-22.host.com flannel 10.4.7.22

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






注意:lannel集群各主机的配置略有不同,SUBNET需要更改





启动flannel之前,需要在etcd中添加网络配置记录


host-gw:直接路由的方式,将容器网络的路由信息直接更新到主机的路由表中,仅适用于二层直接可达的网络





其他节点基本和相同,注意修改一下文件:





注意:iptables规则各主机的略有不同,其他运算节点上执行时注意修改。

安装iptables


优化SNAT规则,各运算节点之间的各POD之间的网络通信不再出网


10.4.7.21主机上的,来源是172.7.21.0/24段的docker的ip,目标ip不是172.7.0.0/16段,网络发包不从docker0桥设备出站的,才进行SNAT转换

删除拒绝所有的规则


各运算节点保存iptables规则


容器网络里坦诚相待,不需要遮掩

容器直接直接的访问,将会记录容器的IP地址,而不是宿主机的IP地址。

在运维主机上,配置一个nginx虚拟主机,用以提供k8s统一的资源配置清单访问入口。










操作

进入存放资源清单目录


rbac.yaml


configmap.yaml


deployment.yaml


service.yaml


检查资源配置清单



任意计算节点(zzgw7-21、zzgw7-22)






解析测试


容器中测试



ingress控制器

Traefik是一个用Golang开发的轻量级的Http反向代理和负载均衡器。由于可以自动配置和刷新backend节点,目前可以被绝大部分容器平台支持,例如Kubernetes,Swarm,Rancher等。由于traefik会实时与Kubernetes API交互,所以对于Service的节点变化,traefik的反应会更加迅速。总体来说traefik可以在Kubernetes中完美的运行.



官网yaml文件地址:https://github.com/containous/traefik/tree/v1.7/examples/k8s

创建并进入资源清单目录


rbac.yaml


daemonset.yaml


service.yaml


ingress.yaml







操作主机:



zzgw7-11和zzgw7-12两台主机上的nginx均需要配置


注:泛域名,访问任何业务域,会调用vip,分发流量至traefik81端口



创建并进入dashboard资源清单目录


rbac.yaml


deployment.yaml


service.yaml


ingress.yaml









注意:dashboardv1.8.3直接可以跳过。拿令牌登陆,需要https。

使用token(令牌)需要https协议,因为treafik代理的http,所以要创建证书去https访问dashboard

cfssl签发证书


拷贝证书

代理节点(zzgw7-11,zzgw7-12)


创建nginx 配置




获取token



浏览器登录

该项目将被官方废弃(RETIRED),在1.8版本以后由metricserver替代



创建并进入资源配置清单目录


rbac.yaml


deployment.yaml


service.yaml




查看创建的资源





注意:生产根据业务来规划升级时间,这里以zzgw7-21为例。

目前使用版本为,升级版本为







生存环境需要修改nginx.conf,把升级节点从upstream中注释掉



删除软连接要特别注意,目录后面不要带上




 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号