kubeasz搭建k8s集群-部署单节点集群(AllinOne部署)

news2024/11/19 1:39:05

1说明

kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。

kubeasz 从每一个单独部件组装到完整的集群,提供最灵活的配置能力,几乎可以设置任何组件的任何参数;同时又为集群创建预置一套运行良好的默认配置,甚至自动化创建适合大规模集群的BGP Route Reflector网络模式。

2.基础系统配置

  • 准备一台虚机配置内存2G/硬盘30G以上
  • 安装Linux操作系统Ubuntu16以上或者CentOS7以上
  • 配置基础网络、更新源、SSH登录等

注意: 确保在干净的系统上开始安装,不能使用曾经装过kubeadm或其他k8s发行版的环境

3.下载文件

  • 下载工具脚本ezdown,举例使用kubeasz版本3.5.2
export release=3.5.2
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
  • 使用工具脚本下载(更多关于ezdown的参数,运行./ezdown 查看)

下载kubeasz代码、二进制、默认容器镜像

# 
./ezdown -D

【可选】下载额外容器镜像(cilium,flannel,prometheus等)

./ezdown -X

【可选】下载离线系统包 (适用于无法使用yum/apt仓库情形)

./ezdown -P

上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

  • /etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码
  • /etc/kubeasz/bin 包含 k8s/etcd/docker/cni 等二进制文件
  • /etc/kubeasz/down 包含集群安装时需要的离线容器镜像
  • /etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件

4.安装集群

  • 容器化运行 kubeasz
./ezdown -S

...
  • 使用默认配置安装 aio 集群
docker exec -it kubeasz ezctl start-aio
# 如果安装失败,查看日志排除后,使用如下命令重新安装aio集群
# docker exec -it kubeasz ezctl setup default all

5.验证安装

$ source ~/.bashrc
$ kubectl version         # 验证集群版本     
$ kubectl get node        # 验证节点就绪 (Ready) 状态
$ kubectl get pod -A      # 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等
$ kubectl get svc -A      # 验证集群服务状态

6.使用仪表盘dashboard

本文档基于 dashboard 2.2 版本,k8s 1.22 版本,因 dashboard 1.7 以后默认开启了自带的登录验证机制,因此不同版本登录有差异:

  • 旧版(<= 1.6)建议通过apiserver访问,直接通过apiserver 认证授权机制去控制 dashboard权限,详见旧版文档
  • 新版(>= 1.7)可以使用自带的登录界面,使用不同Service Account Tokens 去控制访问 dashboard的权限

部署

参考 https://github.com/kubernetes/dashboard

  • 增加了通过api-server方式访问dashboard
  • 增加了NodePort方式暴露服务,这样集群外部可以使用 https://NodeIP:NodePort (注意是https不是http,区别于1.6.3版本) 直接访问 dashboard。

安装部署

# ezctl 集成部署组件,xxxx 代表集群部署名
# dashboard 部署文件位于 /etc/kubeasz/clusters/xxxx/yml/dashboard/ 目录
./ezctl setup xxxx 07

验证部署

# 查看pod 运行状态
kubectl get pod -n kube-system | grep dashboard
dashboard-metrics-scraper-856586f554-l6bf4   1/1     Running   0          35m
kubernetes-dashboard-698d4c759b-67gzg        1/1     Running   0          35m

# 查看dashboard service
kubectl get svc -n kube-system|grep dashboard
kubernetes-dashboard   NodePort    10.68.219.38   <none>        443:24108/TCP                   53s

# 查看pod 运行日志
kubectl logs -n kube-system kubernetes-dashboard-698d4c759b-67gzg

登录

因为dashboard 作为k8s 原生UI,能够展示各种资源信息,甚至可以有修改、增加、删除权限,所以有必要对访问进行认证和控制,为演示方便这里使用 https://NodeIP:NodePort 方式访问 dashboard,支持两种登录方式:Kubeconfig、令牌(Token)。

Token令牌方式登录(admin)

选择 Token 方式登录,复制下面输出的admin token 字段到输入框

# 获取 Bearer Token,找到输出中 ‘token:’ 开头的后面部分
$ kubectl describe -n kube-system secrets admin-user 
Name: dashboard-read-user-token-68g2q
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: dashboard-read-user
kubernetes.io/service-account.uid: 2aeac11f-5498-491d-832d-bd4e6b307c08
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1350 bytes
namespace: 11 bytes
token:
eyJhbGciOiJSUzI1NiIsImtpZCI6ImpBQzEyelVYNjdwaDRBMm5HbHZLSE5sTTgzTTNQWU5Rak1Ja24tU29ybGcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL
3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc
2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtcmVhZC11c2VyLXRva2VuLTY4ZzJxIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb
3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRhc2hib2FyZC1yZWFkLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtY
WNjb3VudC51aWQiOiIyYWVhYzExZi01NDk4LTQ5MWQtODMyZC1iZDRlNmIzMDdjMDgiLCJz

注意: 使用chrome浏览器访问 https://NodeIP:NodePort 可能提示安全风险无法访问,可以换firefox浏览器设置安全例外,继续访问。按照上面的提示,我这里的访问地址是:https://172.23.13.168:24108

在浏览器访问

注意: 使用 chrome 浏览器访问 https://NodeIP:NodePort 可能提示安全风险无法访问,选择高级继续访问。
在这里插入图片描述
在这里插入图片描述

Kubeconfig登录(可选)

Kubeconfig登录(admin) Admin kubeconfig文件默认位置:/root/.kube/config,该文件中默认没有token字段,使用Kubeconfig方式登录,还需要将token追加到该文件中,完整的文件格式如下:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdxxxxxxxxxxxxxx
    server: https://192.168.1.2:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: admin
  name: kubernetes
current-context: kubernetes
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRxxxxxxxxxxx
    client-key-data: LS0tLS1CRUdJTxxxxxxxxxxxxxx
    token: eyJhbGcixxxxxxxxxxxxxxxx

附录:清理kubeasz

以上步骤创建的K8S开发测试环境请尽情折腾,碰到错误尽量通过查看日志、上网搜索、提交issues等方式解决;当然你也可以清理集群后重新创建。

在宿主机上,按照如下步骤清理

  • 清理集群 docker exec -it kubeasz ezctl destroy default
  • 重启节点,以确保清理残留的虚拟网卡、路由等信息

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

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

相关文章

太赫兹高速通信系统前端关键技术

摘要&#xff1a;对构成太赫兹无线系统的2 种关键电路&#xff08;分谐波混频器和二倍频器&#xff09;进行了深入研究。在关键电路研究取得突破的基础上&#xff0c;开展了太赫兹无线通信技术研究&#xff0c;构建了220 GHz 无线通信实验验证系统。220 GHz 实验验证系统在室外…

elasticsearch 其他字段类型详解和范例

本章主要内容 elasticsearch 中别名字段的详解和范例elasticsearch 中二进制类型的详解和范例elasticsearch 中的嵌套类型的详解和范例elasticsearch 中的范围类型的详解和范例elasticsearch 中的排名类型的详解和范例elasticsearch 中的ip类型的详解和范例elasticsearch 中的…

【网络应用开发】实验3——Web组件重用与JavaBeans

目录 Web组件重用与JavaBeans预习报告 一、实验目的 二、实验原理 三、实验预习内容 1. 静态include指令何时执行&#xff1f;主页面和被包含的子页面是否转换为一个转换单元&#xff1f; 2.动作指令何时执行&#xff1f;主页面和被包含的子页面是否转换为一个转换单元&a…

【Python游戏】坦克大战、推箱子小游戏怎么玩?学会这些让你秒变高高手—那些童年的游戏还记得吗?(附Pygame合集源码)

前言 下一个青年节快到了&#xff0c;想小编我也是过不了几年节日了呢&#xff01;&#xff01; 社交媒体上流传着一张照片——按照国家规定“14岁到28岁今天都应该放半天假&#xff01;”不得不说&#xff0c; 这个跨度着实有点儿大&#xff0c;如果按整自然年来算年龄&…

Spark 连接 Hive

目录 导包 修改配置文件 修改hive-site.xml文件 启动hadoop 启动hive 启动spark 测试 查看表 导包 spark连接hive需要六个关键的jar包&#xff0c;以及将hive的配置文件hive-site.xml拷贝到spark的conf目录下。如果你hive配置没问题的话&#xff0c;这些jar都在hive的目…

Spring Security实战(四)—— 会话管理

目录 一、理解会话 二、防御会话固定攻击 三、会话过期 四、会话并发控制 五、集群会话的缺陷 六、集群会话的解决方案 七、整合Spring Session解决集群会话问题 只需在两个浏览器中用同一个账号登录就会发现&#xff0c;系统并没有任何会话并发限制。一个账号可以多处同…

cuSPARSE官方程序示例

cuSPARSE Library 简介 这个文件演示了cuSPARSE通用API的用法 官方程序&#xff1a;后续会出解析&#xff08;20230410&#xff09; cuSPARSE Generic APIs Documentation cuSPARSE Samples 向量 - 向量 操作矩阵 - 向量 操作矩阵 - 矩阵操作转换Legacy APIs优化稀疏迭代…

阿里本地生活再出发:口碑入高德,备战美团、抖音

配图来自Canva可画 近日&#xff0c;有传言称高德地图将和阿里本地生活旗下的到店业务口碑正式合并&#xff0c;未来阿里旗下所有的本地生活到店业务都将统一整合在高德地图的入口中。3月22日&#xff0c;高德地图正式确认了此事&#xff0c;并表示高德地图作为“出门好生活开…

网络软件-管理网络设备和组件

网络软件是一个术语&#xff0c;表示帮助网络管理员轻松执行特定操作的任何网络软件。术语“网络软件”可以包括广泛的软件解决方案&#xff0c;每个解决方案都提供特定的功能&#xff0c;共同帮助网络管理员完全控制其IT基础架构。网络软件工具提供监控网络运行状况、测量性能…

一个简单的MUX-VLAN实验(华为eNSP模拟器)

MUX-VLAN产生背景及用途 在数据中心网络中&#xff0c;数据中心管理员希望数据中心内部所有服务器&#xff08;或终端&#xff09;都可以访问外部网络&#xff0c;同时部分服务器之间可以互相通信&#xff0c;部分服务器之间相互隔离。一般情况下&#xff0c;为了实现所有服…

python贪吃蛇代码

文末用python写好了贪吃蛇代码可直接复制使用&#xff01; 今天和大家分享一下贪吃蛇的代码&#xff0c;主要是贪吃蛇的一些基本知识&#xff0c;以及怎么去玩。 首先&#xff0c;我们先了解一下什么是贪吃蛇&#xff1f;它是一个具有多种功能的游戏&#xff0c;可以通过点击屏…

绿联dx4600砖机救援

由于在操作ssh过程不当&#xff0c;导致成为搬砖&#xff0c;记录一下救援过程 涉及到拆机&#xff0c;会导致损保&#xff0c;建议邮寄官方救援 变砖前因&#xff1a; 发现可以使用opkg&#xff0c;遂用opkg进行安装包的操作&#xff0c;最后更新busy-box&#xff0c;而进行b…

Vue源码解析(尚硅谷)

视频地址&#xff1a;Vue源码解析系列课程 一、Vue源码解析之mustache模板引擎 1. 什么是模板引擎 模板引擎是将数据要变为视图最优雅的解决方案 历史上曾经出现的数据变为视图的方法 2. mustache基本使用 mustache库简介 mustache库基本使用 3. mustache的底层核心机理…

3.7.2数据库系统-数据库控制技术:数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复、数据库性能优化

3.7.2数据库系统-数据库控制技术&#xff1a;数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复、数据库性能优化数据库的安全性数据库备份与恢复技术数据备份数据库故障与恢复数据库性能优化数据库的安全性 在做信息系统开发的过程当中&#xff0c;数据库是…

集合的线程安全解读

目录 集合操作 Demo Vector Collections CopyOnWriteArrayList(重点) “动态数组”机制 “线程安全”机制 集合操作 Demo NotSafeDemo public class NotSafeDemo {/*** 多个线程同时对集合进行修改* param args*/public static void main(String[] args) {List list ne…

100Wqps异地多活,得物是怎么架构的?

说在前面 在40岁老架构师尼恩的数千读者群中&#xff0c;一直在指导大家简历和职业升级&#xff0c;前几天&#xff0c;指导了一个华为老伙伴的简历&#xff0c;小伙伴的优势在异地多活&#xff0c;但是在简历指导的过程中&#xff0c;尼恩发现&#xff1a; 异地多活的概念、异…

大专毕业该怎么办?

大专学历转IT拿10k&#xff01;谁说生活不能是热血漫&#xff1f; “本科生讨论孔乙己的长衫&#xff0c;我们专科生怎么办&#xff1f;” “专科生的唯一出路难道就是进厂吗&#xff1f;” 在如今的就业内卷浪潮中&#xff0c;专科生的处境是最为尴尬的。一方面&#xff0c;很…

黑马在线教育数仓实战5

5. 意向用户主题看板_全量流程 5.1 需求分析 主要分析什么内容: 1) 每一个需求涉及到那些维度, 那些直白 2) 每一个需求涉及到那些表, 表的字段 3) 找出需要进行清洗 转换的操作 4) 如果表涉及到多表, 需要找到表与表关联条件 需求一: 计期内&#xff0c;新增…

国货之光!打工人必装的8个软件,你都用过没?|办公|效率|创作

给大家分享8款非常强大&#xff0c;但知名度不高的国产软件&#xff0c;每一个都堪称精品&#xff0c;喜欢的话记得点赞和关注哦~ 第一款是 火绒安全软件 火绒安全软件没有任何&#xff0c;具有推广性质的弹窗、没有捆绑打扰用户的行为&#xff1b;占用资源极少&#xff0c;&a…

Vue.js 2.0 表单控件绑定

基础用法 你可以用 ​v-model​ 指令在表单​ <input>​、​<textarea>​ 及 ​<select>​ 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇&#xff0c;但 ​v-model ​本质上不过是语法糖。它负责监听用户的输入事件…