11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

如何用 Ubuntu 和 Xen 来设置 Kubernetes?

  • 2020-03-11
  • 本文字数:1933 字

    阅读完需:约 6 分钟

如何用Ubuntu和Xen来设置Kubernetes?

这篇博客描述了我如何设置本地 Kubernetes。如果你想要自己设置 Kubernetes,那么点击这里参照指导。


我想要运行自己的 Kubernetes 部署,来运行应用程序和试验。我不仅仅只是想测试 Kubernetes,还想让它 24 小时全天候运行。做到这样最简单的方法就是使用谷歌 GCE 或者 AWS。如果使用这两种方法,你就不需要花那么多钱在保持基础安装运行。


考虑了很多选择之后(包括运行树莓派集群),我得出结论,我最好的设置就是运行单个主持很多虚拟机的物理服务器。


我选了 Xen 作为我的超管理器,Ubuntu 作为“dom0”(之后会对这个进行详述),Core OS 作为我的 Kubernetes 主机。以下是我的设置。


硬件

  • Dell T20 服务器

  • Intel i5-4590

  • 16GB RAM

  • 120 GB SSD


软件

超管理器:Xen 超管理器/Ubuntu16.04。我发现自己完全被“dom0”的谈论搞糊涂了,但是要点是:安装 Ubuntu16.04 在自己的服务器上,然后你安装(通过 apt-get)Xen,安装 Xen 就好像用你的原始 Ubuntu 安装虚拟机一样。这个虚拟机叫做“dem0”,可以用来管理你的其它虚拟机。


(另外困扰的就是——Xen 不是 Xen 服务器,你可以完全忽略 Xen 服务器这个商业产品)。


Kubernetes OS:Core OS Alpha Channel。现在为止,Stable 不包括 kubelet(这个正是我们需要的),所以我们使用 Alpha。这就是我选择的,因为它支持 Kubernetes 既轻松又简单。


安装 Xen

在一个新的 Ubuntu16.04 上面,安装 Xen,libvirt 和 virtinst。将它作为默认引导点,并且重新启动。virtinst


给我们一个 CLI,我们之后会用来启动虚拟机。



之后回来的就是原始 Ubuntu,作为一个虚拟机运行在 Xen 超管理器上。因为是原始安装,所以我们并不知道到底哪些东西是改变了的。我们来查看一下:



安装 Kubernetes

Kubernetes 和这些漂亮的脚本从基础层面为你设置整个集群。我发现的问题就是,我想要自己管理(或者理解)这些软件。我并不想要一个迷之 bash 脚本来替我处理一切问题。


相反,我创建了我自成一套的脚本,这个脚本少生成和模版,可能对某些例子来说是有用的。这里展示的就是如何使用他们。


我们会尽量少使用我的东西——下面的 git 存储库是 4Core OS 云配置文件。这些定义配置(网络设置,应用程序)。也有为集群配置来生成我们的 SSL 证书。


所以,从 Github 抓取我的文件,从最新的 CoreOS Alpha 抓取:



现在为 master,node1,node2,node3 来创建一个磁盘:



如果你没有 SSH 密钥的话,你可能需要生成一个:



然后我们把我们的 SSH 密钥放到云端文件:



我们也需要生成我们的证书:



然后放入我们生成的证书到 master 节点中:



配置完成,我们现在可以验证双重检查:



如果通过了(从服务器看是“null”),那就使用这些磁盘创建一个 Core OS 虚拟机:



这就会开启 4 个运行在 Core OS 上面的虚拟机,我们的云配置文件。这个取决于你在哪里运行(网速,服务器电源),要花费比较长的时间才能启动和运行。


可能发生的状况:


  • 下载 Flannel 镜像

  • Kubelet 开启和下载超 kube

  • 容器为 API 服务器,controller 管理员,master 上的调度器开启

  • 为 kube-proxy 的容器在节点上启动


如果你需要,可以连接到控制台,并且监控节点启动:



你也可以 ssh 到 master,然后查看 journalctl:



所以,运行起来了吗?让我们来使用 kubectl(我们先要在本地安装一下这个):



让我们来看:



最后一条,如果我们尝试,并且列出 pods(正在运行的进程),我们得不到任何东西。我们需要创建“kube-system”命名空间。这个很容易:



现在:



结论

所以我们事实上完成了什么呢?我们已经将 Ubuntu 服务器移入到了一个 Xen 管理程序。在那台超管理器上,我们创建了 4 个运行在 Core OS 上的虚拟机。在我的 Git 存储库里的 Core OS 文件,我们设置了一个 Core OS 安装,运行在 master Kubernetes 组件上,其它三个则运行在节点组件上。


我们有很多方法让 Kubernetes 运行在 Core OS 上面。特别的一点就是我们按照如下流程来设置:


  • Flannel service——可以用来处理我们的网络。它允许一个节点上的容器跟其它节点上的容器进行通信。

  • etcd service——这就是 Kubernetes 保持状态的地方。

  • Docker service——Docker 就是 Kubernetes 设置开启镜像的方式。

  • kubelet service——这就是 kubernetes 组件中唯一作为系统 service 的。我们使用 kubelet 来加入我们的 Kubernetes 集群,然后启动其它 kubernetes 应用程序。

  • 跟系统 service 一样,我们也安装了以下的东西作为 services,由 Kubernetes 管理,我们通过在 /etc/kubernetes/manifests/中替换 Kubernetes 文件来完成。kubelet service 监控这个目录,并且基于它找到的东西来启动应用程序。

  • kube-apiserver

  • kube-scheduler

  • kube-controller-manager

  • kube-proxy


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/XPRD_YlExp7HOd5nLxwm5A


2020-03-11 19:51294

评论

发布
暂无评论
发现更多内容

易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!

易观分析

金融 海南数字经济 易观分析

易观千帆银行用户体验中心:聚焦银行APP用户体验

易观分析

金融 银行 用户体验

metaForce佛萨奇2.0系统开发功能逻辑介绍

l8l259l3365

容器化 | 在 S3 实现定时备份

RadonDB

MySQL 数据库 Kubernetes

避免 10 大 NGINX 配置错误(上)

NGINX开源社区

nginx 架构 配置 配置分析 故障排除

Colocate Join :ClickHouse的一种高性能分布式join查询模型

华为云开发者联盟

数据库 后端

8月Meetup | “数据调度+分析引擎”解锁企业数字化转型之路

Apache DolphinScheduler

兆骑科创创业赛事活动发布平台,创业赛事,项目路演

兆骑科创凤阁

MySQL 原理与优化:Update 优化

老崔说架构

社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”

Apache DolphinScheduler

智为链接,慧享生活,荣耀智慧服务,只为 “懂” 你

荣耀开发者服务平台

开发者 安卓 荣耀 honor

产品说明丨如何使用MobPush快速创建应用

MobTech袤博科技

ios android sdk mobpush 智能推送

用好 DIV 和 API,在前端系统中轻松嵌入数据分析模块

葡萄城技术团队

前端 嵌入式 BI 可视化数据

兆骑科创高层次人才创业大赛平台,投融资对接,双创服务

兆骑科创凤阁

NFT数字藏品——数字藏品发行平台开发

开源直播系统源码

软件开发 数字藏品 数字藏品系统软件开发

fastposter v2.9.1 程序员必备海报生成器

物有本末

海报生成器 海报编辑器 图片生成 二维码生成

安克创新每一个“五星好评”背后,有怎样的流程管理?

科技热闻

符合信创要求的堡垒机有哪些?支持哪些系统?

行云管家

信创 堡垒机 信创产业

mysql进阶(三十三)MySQL数据表添加字段

No Silver Bullet

MySQL 8月月更 添加字段

头脑风暴:目标和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

“低代码”编程或将是软件开发的未来

优秀

低代码

一文带你了解 HONOR Connect

荣耀开发者服务平台

开发者 教程 荣耀 honor

如何用Ubuntu和Xen来设置Kubernetes?_新基建_才云科技_InfoQ精选文章