必威体育Betway必威体育官网
当前位置:首页 > IT技术

我写过的软件之Kubernetes All In One

时间:2019-08-05 09:11:08来源:IT技术作者:seo实验室小编阅读:81次「手机版」
 

all in one

其实这不是一个软件,而是一个安装包

公司的产品用到docker/kubernetes这些技术,每次安装都得从网上下载一堆软件包,加上有一些软件包还可能被墙了,安装一次得花了一两天时间,就萌生一个想法做一个离线就可以安装的kubernetes安装包,给自己定了一个小目标:

  • 把docker/kubernetes等软件的依赖和软件包都打包进去,电脑不能连接因特网也能安装。
  • 把calico,consul,dashboard,fluentd-elastic search-kibana,helm,kafka-zookeeper和nginx-ingress都用上。
  • 1个master,3个slave。
  • 包含几个demo演示如何访问consul,kafka。
  • 安装脚本尽可能只用shell。
  • 安装过程尽可能自动化,执行过程简单。

为了做这个,还买了一台高性能的笔记本,i9/64G内存/SSD硬盘,开几台虚拟机也不觉得卡顿,i9 cpu性能提升确实挺牛逼的。调试一些问题还经常弄到三更半夜,经过几个星期的奋战,年前终于做得差不多了,给大家knowledge share一下,貌似大部分人听得稀里糊涂的。。。倒是有几个开发的同事拿着这个包把玩了一番,若有所得的样子。

最后的包大概是这个样子:

/d/file/news/20190605/20190316112644819.png

假设这个包使用NFS共享给几个需要安装的机器上之后,对脚本做几个简单的修改就可以安装了:

  • 修改脚本中的pod-network-cidr。
  • 修改脚本中的master的ip地址。
  • 修改脚本中的主机名。

[Updated]

修改完之后,就只需要执行脚本就行了:

  • 在master主机上执行1_master的脚本
  • 在worker主机上执行2_worker和3_worker脚本
  • 在master主机上执行4_master脚本

整个执行过程还是简单明了的。脚本本身也没有太复杂,对于初学者应该是一个比较好的入门工具

几个脚本完成的功能大概分解如下。

1_master.sh:

  • 安装Docker
  • 导入master节点所需要的docker镜像
  • 安装kubernetes
  • 执行kubeadm init初始化master节点
  • 安装Calico/Dashboard
  • 生成登录dashboard所需要的证书和配置文件
  • 生成join命令脚本(也就是3_worker.sh)

2_worker.sh

  • 创建persistent Volume需要的文件夹
  • 安装Docker
  • 导入worker节点需要的镜像
  • 安装Kubernetes

3_worker.sh

  • 执行kubeadm join加入集群

4_master.sh

  • 给worker节点打label
  • 安装nginx ingress
  • 安装helm
  • 安装其他的应用

Kafka和Zookeeper是自己做的Image,Kafka的StatefulSet的状态竟然老是不稳定,调用脚本检查状态的时候老是挂在那里,一直不能ready,折腾了两三周,最后改成用tcpsocket的方式来检测readinessProbe了,貌似OK了。

另外做了几个demo访问kafka/consul。

用这个安装包,在一个ubuntu18 server上的机器,装完一个1个master 3个worker的Kubernetes也就需要个半个小时。方便快捷多了...容我自我陶醉一下...

做一个东西的过程中貌似各种坑,等坑填完了再回过头来看,好像坑也不算是坑了。

【有以前的同事要,传了一个版本到百度网盘:链接: https://pan.baidu.com/s/1ARdN2EeU_r-2TBj9cWWF1w 提取码: cvj4  】

相关阅读

Kubernetes平台云原生存储编排利器Rook详解

云原生存储编排利器Rook详解 1. Rook介绍 1.1 Rook简介 Rook是一个运行在Kubernetes集群中的开源云原生存储服务编排工具,为各种存

kubernetes-使用Kustomize部署应用

kubernetes 自1.14 之后,Kubernetes 项目本身开始具备了原生的应用管理能力,这其中最重要的一个功能,就是 Kustomize。 Kustomize 允

kubernetes系列之十四:Kubernetes CRD(CustomResourceD

一、前言Kubernetes平台对于分布式服务部署的很多重要的模块都有系统性的支持,借助如下一些平台资源可以满足大多数分布式系统部署

如何利用kubernetes实现应用的水平扩展(HPA)

云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要特性。对于Kubernetes中的POD集群来说,HPA就是实现这种水平伸缩

分享到:

栏目导航

推荐阅读

热门阅读