手把手一起 图形化安装 k8s 集群

c84dcda29039a144ab4a867972634fb7.gif

作者 | 小碗汤

来源 | 我的小碗汤

今天接着上一节,使用 KuboardSpray 图形化安装kubernetes集群[1],记录了安装时可能遇到的问题。对此项目感兴趣的同学,不妨亲手实践一下~

以下记录了安装单节点(单master的集群),示例使用版本为:

  • Kuboard Spray版本为v1.0.0-alpha.1,也是截止2022.01.04最新版本。

  • 操作系统版本:CentOS Linux release 7.9.2009

  • 内核版本:3.10.0-1160.31.1.el7.x86_64

配置

Add Node添加节点:NodeName为master01,NodeRoles为控制平面、etcd节点、工作节点。具体根据自己需求来规划。

Global Config配置:

  • SSH部分需要输入用户名和密码;

  • ContainerManager部分:有containerd和docker可选择,这里选择docker

e0f2520a94d5d61f45ceb1b5c93e3410.png

Global Config配置,OS Mirror部分,选择预置的操作系统配置源:

901a2487d943c0547b868f1e634eb118.png

Kubernetes配置部分,可以自定义集群泛域名后缀,Event保留时间,是否允许匿名用户访问,kubelet日志级别,网络CIDR,节点上maxPod,网络插件有Flannel和calico可选:

73244e5710030be48d3177463a380a4c.png

ETCD配置部分,有容器化部署和二进制部署可选:

e1f03f4fe1fa403b508631b4d6e7bafd.png

Addons开启了net_checker和Metrics,作为集群监控组件:

95a49bcc8b84687f84d5e3c771cbc9c5.png

这里重点提一下net_checker:

Kubespray提供了一种使用 Netchecker 通过集群 IP 自动验证 Pod 到 Pod 的连接性,并检查 DNS 解析是否正常运行。这些检查由agent定期运行,并涵盖容器网络和主机网络 pod。执行检查的历史信息可以在agent应用程序日志中找到。并作为集群健康指标,报告到server,以metrics接口的方式暴露指标。

可能的报错

Apply之后,执行安装时报错:

TASK [bastion-ssh-config : set bastion host IP and port] ***********************
task path: /data/resource/spray-master-8d9ed01_k8s-v1.23.1_v1.0-amd64/content/3rd/kubespray/roles/bastion-ssh-config/tasks/main.yml:2
fatal: [bastion -> localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'bastion'\n\nThe error appears to be in '/data/resource/spray-master-8d9ed01_k8s-v1.23.1_v1.0-amd64/content/3rd/kubespray/roles/bastion-ssh-config/tasks/main.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: set bastion host IP and port\n  ^ here\n"
}PLAY RECAP *********************************************************************
bastion                    : ok=3    changed=0    unreachable=0    failed=1    skipped=22   rescued=0    ignored=0   
localhost                  : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

根据报错信息bastion host IP and port可以猜到是跳板机host和port导致的,但我并没有enable跳板机选项:

41e0736905e7d162bb1b0fdf0ddd3c50.png

根据报错指向的文件,到kuboard-spray容器中排查main.yml,如下:

# docker exec -ti kuboard-spray bash
root@41b1a241a852:/kuboard-spray# cat /data/resource/spray-master-8d9ed01_k8s-v1.23.1_v1.0-amd64/content/3rd/kubespray/roles/bastion-ssh-config/tasks/main.yml
---
- name: set bastion host IP and portset_fact:bastion_ip: "{{ hostvars[groups['bastion'][0]]['ansible_host'] | d(hostvars[groups['bastion'][0]]['ansible_ssh_host']) }}"bastion_port: "{{ hostvars[groups['bastion'][0]]['ansible_port'] | d(hostvars[groups['bastion'][0]]['ansible_ssh_port']) | d(22) }}"delegate_to: localhostconnection: local# 省略

这里能看到需要获取跳板机(bastion)下的host和port,其实根据我们的选项,这个任务都不应该执行。

集群配置清单其实在kuboard-spray容器中/data/cluster/yourclustername/inventory.yaml文件中,其中包含了bastion信息:

root@41b1a241a852:/data/cluster/smallsoup# cat inventory.yaml 
all:hosts:bastion:ansible_host: ""ansible_user: ""

需要删除hosts.bastion。

sed -i '/bastion:/d' inventory.yaml 
sed -i '/ansible_host: ""/d' inventory.yaml 
sed -i '/ansible_user: ""/d' inventory.yaml

这就懵逼了,跳板机host和port怎么会设置为空值呢?

事情经过是这样的:

一开始我手残点了一下enable,想看看有没有需要填写的。因为是测试环境,无需跳板机,所以就disable了。然而,这个版本有bug,disable时没有清理干净inventory.yaml中的配置,这是一个bug[2],这个bug作者会在后续版本中修复。

这个问题解决后继续安装。

继续安装

后面的安装还算顺利。重新点击Apply即可安装成功:

a440e453ea735838f37994e681e31f0b.png

注意点

如果之前主机上有docker,执行安装时会reload docker,即发生重启,重启之后刷新页面重新点击Apply即可安装成功。

查看集群

# kubectl  get node
NAME       STATUS   ROLES                  AGE   VERSION
master01   Ready    control-plane,master   29m   v1.23.1# systemctl status etcd# kubectl  get ippool
NAME           AGE
default-pool   29m# kubectl  get pod -A
NAMESPACE     NAME                                     READY   STATUS    RESTARTS      AGE
default       netchecker-agent-8fs2m                   1/1     Running   0             30m
default       netchecker-agent-hostnet-vknsm           1/1     Running   0             30m
default       netchecker-server-59fcd6bf86-5mtkn       2/2     Running   1 (30m ago)   30m
kube-system   calico-kube-controllers-bd5fc6b6-h6ghc   1/1     Running   0             31m
kube-system   calico-node-z6kwp                        1/1     Running   0             31m
kube-system   coredns-5c5b9c5cb-lb8wl                  1/1     Running   0             30m
kube-system   dns-autoscaler-7874cf6bcf-jz6qw          1/1     Running   0             30m
kube-system   kube-apiserver-master01                  1/1     Running   0             32m
kube-system   kube-controller-manager-master01         1/1     Running   1             32m
kube-system   kube-proxy-9c5tm                         1/1     Running   0             31m
kube-system   kube-scheduler-master01                  1/1     Running   1             32m
kube-system   metrics-server-6b957b8494-kmsbp          1/1     Running   0             30m
kube-system   nodelocaldns-rq79f                       1/1     Running   0             30m

可以看到

  • 一个master节点的集群创建成功

  • etcd二进制部署

  • metrics-server和netchecker正常

  • calico使用kubernetes CRD作为datastore

我们可以通过netchecker-server的地址获取指标:

curl http://{主机IP}:31081/metrics

参考资料

[1]

使用 KuboardSpray 图形化安装kubernetes集群: https://liabio.blog.csdn.net/article/details/122292548

[2]

这是一个bug: https://github.com/eip-work/kuboard-spray/issues/3

5965f18e768e2765d1893b329de794b5.gif

0fdf56ef616e61dcbe8f7144ac11713d.png

往期推荐

为什么还有这么多的网络故障?

k8s集群居然可以图形化安装了?

用了HTTPS,没想到还是被监控了

快速搭建实验环境:使用 Terraform 部署 Proxmox 虚拟机

f10f4d278f5d1d24d8a6ca11d375dc61.gif

点分享

5c073b00b5440750dbdccb32c0a44acd.gif

点收藏

56cffa294d4240504970c0e672ab7a8f.gif

点点赞

20ff9a4e2b78e94f493df0e8a8506e03.gif

点在看

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

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

相关文章

Jaeger插件开发及背后的思考

简介: 本文主要介绍Jaeger最新的插件化后端的接口以及开发方法,让大家能够一步步的根据文章完成一个Jaeger插件的开发。此外SLS也推出了对于Jaeger的支持,欢迎大家试用。 随着云原生 微服务的推广和落地,服务监控也变得越来越重…

基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-架构篇

简介: 本文简要介绍了基于 MySQL 结合 Tablestore 的大规模订单系统方案。这种方案支持大数据存储、高性能数据检索、SQL搜索、实时与全量数据分析,且部署简单、运维成本低。 作者 | 弘楠 来源 | 阿里技术公众号 一 背景 订单系统存在于各行各业&#…

ajax返回来总是html,ajax返回类型

基于arcgis的webgis开发中目前是否还直接用ajax技本人是arcgis刚接触者,以前有听说过ajax这个技术,用于浏览器和web服务ajax技术现在依然是客户端浏览器和服务器交互的重要手段。 如果你用arcgis api for js技术,同样会使用ajax技术。这是良好…

三分钟教你用 Scarlet 写一个 WebSocket App

作者 | Eason来源 | 程序员巴士在移动应用程序中,数据层是屏幕上显示内容的真实来源。然而,在今年早些时候在 Tinder 中集成了 WebSocket API 时,维护它成为了一个令人头疼的问题。为了在 Android 上更轻松地集成 WebSocket,Scarl…

重磅发布|新一代云原生数据仓库AnalyticDB「SQL智能诊断」功能详解

简介: AnalyticDB For MySQL为用户提供了高效、实时、功能丰富并且智能化的「SQL智能诊断」和「SQL智能调优」功能,提供用户SQL性能调优的思路、方向和具体的方法,降低用户使用成本,提高用户使用ADB的效率 SQL是一种简单易用的业…

技术干货|基于Apache Hudi 的CDC数据入湖「内附干货PPT下载渠道」

简介: 阿里云技术专家李少锋(风泽)在Apache Hudi 与 Apache Pulsar 联合 Meetup 杭州站上的演讲整理稿件,本议题将介绍典型 CDC 入湖场景,以及如何使用 Pulsar/Hudi 来构建数据湖,同时将会分享 Hudi 内核设计、新愿景以及社区最新…

探究 Java 应用的启动速度优化

简介: 在高性能的背后,Java 的启动性能差也令人印象深刻,大家印象中的 Java 笨重缓慢的印象也大多来源于此。高性能和快启动速度似乎有一些相悖,本文将和大家一起探究两者是否可以兼得。 作者 | 梁希 高性能和快启动速度&#x…

阿里云刘伟光:金融核心系统将步入分布式智能化的时代

1月18日,阿里云在京发布金融核心系统转型“红宝书”,并推出“金融级云原生工场”,通过新的建设理念和相应的全链路平台技术,以及先进的部署体系,支撑金融机构建设面向未来的新一代分布式智能化核心系统。 阿里云智能新…

5分钟搞定Loki告警多渠道接入

简介: Loki是受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。用户既可以将Loki告警直接接入SLS开放告警,也可以先将Loki接入Grafana或Alert Manager,再借助Grafana或Alert Manager实现Loki间接接入SLS开放告警。 直接接入 您可…

当微服务遇上 Serverless | 微服务容器化最短路径,微服务 on Serverless 最佳实践

简介: 阿里云Serverless应用引擎(SAE)初衷是让客户不改任何代码,不改变应用部署方式,就可以享受到微服务K8sServerless的完整体验,开箱即用免运维。 前言 微服务作为一种更灵活、可靠、开放的架构&#x…

学计算机就业靠谱吗,2018年计算机专业就业怎么样?

由孙中山先生创办的至今已有一百多年办学传统,已经成为一所国内一流、国际知名的现代综合性大学。涉足的领域较广,有法律、医学等领域,每个领域都取得不俗的成绩。该校的计算机专业自开设以来也颇受学生欢迎,2018年计算机专业就业…

Serverless 工程实践 | 细数 Serverless 的配套服务

简介: 上文说到云计算的十余年发展让整个互联网行业发生了翻天覆地的变化,Serverless 作为云计算的产物,或者说是云计算在某个时代的表现,被很多人认为是真正意义上的云计算,关于“Serverless 是什么”这个问题&#x…

程序员在想些什么?拒绝盲猜,CSDN帮你精准洞察 Ta 们的心

CSDN 推出《开发者研究与洞察》服务。基于3200万开发者的资源,从开发者视角出发,聚焦开发者“关注”、“使用”、“体验”三方面,帮助技术推广者打造技术品牌、优化技术产品的市场投放策略、提升技术产品的开发者使用体验,直接聆听…

伴鱼:借助 Flink 完成机器学习特征系统的升级

简介: Flink 用于机器学习特征工程,解决了特征上线难的问题;以及 SQL Python UDF 如何用于生产实践。 本文作者陈易生,介绍了伴鱼平台机器学习特征系统的升级,在架构上,从 Spark 转为 Flink,解…

小型微型计算机系统退回修改,小型微型计算机系统

基本信息期刊名称小型微型计算机系统《中国计算机系统杂志》的英文名称出版周期每月发布了ISSN 1000-1220发布CN 21-1106 / TP邮政编码8-108组织者中国科学院沉阳计算技术研究所出版地: 辽宁省沉阳市期刊首页网址提交URL包含在中/荣誉CSCD核心期刊中国科学引文Pж(AJ)摘要杂志C…

Flink 1.14 新特性预览

简介: 一文了解 Flink 1.14 版本新特性及最新进展 本文由社区志愿者陈政羽整理,内容源自阿里巴巴技术专家宋辛童 (五藏) 在 8 月 7 日线上 Flink Meetup 分享的《Flink 1.14 新特性预览》。主要内容为: 简介流批一体Checkpoint 机制性能与效率…

2021 年云原生技术发展现状及未来趋势

简介: 作者于雨担任了 2021 年 GIAC 会议云原生专场的出品人兼讲师,组织了前后四个场子的演讲,在这个过程中作者同时作为听众从这些同行的演讲中学到了很多非常有用的知识。本文算是对 2021 GIAC 云原生专场的侧记,管中窥豹&#…

像搭“乐高”一样实现整合式网络安全体系

部署多种防护产品,却无法形成防御合力,是当前很多企业网络安全建设都面临的挑战。网络安全能力整合是企业的刚需,也是行业发展的大势所趋。虽然Gartner 提出的网络安全网格架构(CSMA,Cybersecurity Mesh Architecture …

合规安全大考核:移动应用安全策略全盘点

简介: 移动应用涵盖用户大量个人数据,一旦发生泄漏可能对个人、社会造成重大影响,同时对移动应用产业长远的发展来说也是毁灭性打击。移动应用开发者,也应注意开发过程中的规范性、安全性,敬畏安全问题,防范…

禁用计算机f1-f12,win10禁用F1至F12热键转为功能键的技巧

win10禁用F1至F12热键转为功能键的技巧介绍。有网友询问:Win10系统笔记本电脑上的F1-F12键上都变成了开关系统功能开关的快捷键,而失去了F1-F12键本身的快捷键的功能。因为编写程序运行的许多软件都需要使用Fn快捷功能键运行,还有制作Word文档…