安装 KubeSphere DevOps 系统
1. 安装KubeSphere
安装了一夜,终于看到了期待已久的画面
第一步、硬件配置(PS:VirtualBox虚拟机):
操作系统:Ubuntu 18.04
CPU:4核
内存:8G
磁盘:60G
第二步、下载安装包
curl -L https://kubesphere.io/download/stable/v2.1.1 > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.1/scripts
第三步、修改conf/common.yaml
主要是配置镜像加速,以及启用一些插件
docker_registry_mirrors:
- https://xxx.mirror.aliyuncs.com
- https://docker.mirrors.ustc.edu.cn
- https://registry.docker-cn.com
- https://mirror.aliyuncs.com
我的改动如下:
最后,配置防火墙需要开放的端口
我这里直接把防火墙关了
~/kubesphere-all-v2.1.1/scripts/install.sh
顺利的话,几个小时就成功了,嘿嘿~
如果不顺利的话,请把文档反复仔细阅读三遍
https://kubesphere.io/docs/zh-CN/installation/intro/
https://kubesphere.io/docs/zh-CN/installation/port-firewall/
https://kubesphere.io/docs/zh-CN/installation/pluggable-components/
https://kubesphere.io/docs/zh-CN/installation/install-devops/
https://kubesphere.io/docs/zh-CN/installation/all-in-one/
https://kubesphere.io/docs/zh-CN/installation/verify-components/
https://kubesphere.io/docs/zh-CN/installation/install-grafana/
。。。。。。
当我背着电脑到公司以后,我突然意识到一个问题,那就是ip变了
于是我尝试重启了一些机器,然后重新执行./install.sh
总是失败,报什么“etcd cluster is unavailable or misconfigured; error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused”
Error: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 10.0.28.43:2379: getsockopt: connection refused error #0: dial tcp 10.0.28.43:2379: getsockopt: connection refused
网上各种查,没找到解决方法
后来,无意中,我发现先uninstall.sh一下,再install.sh一下就好了
~/kubesphere-all-v2.1.1/scripts/uninstall.sh
~/kubesphere-all-v2.1.1/scripts/install.sh
我想,如果再不行的话,就删除虚拟机,重装系统,然后重新安装KubeSphere
啊哈,终于又安装成功了
访问Grafana
https://kubesphere.io/docs/zh-CN/installation/install-grafana/
默认账号密码是admin/admin,登录后密码改为admin123
2. 从入门到放弃
2.1. 多租户管理
目前,平台的资源一共有三个层级,包括 集群 (Cluster)、 企业空间 (Workspace)、 项目 (Project) 和 DevOps Project (DevOps 工程),层级关系如下图所示,即一个集群中可以创建多个企业空间,而每个企业空间,可以创建多个项目和 DevOps工程,而集群、企业空间、项目和 DevOps工程中,默认有多个不同的内置角色。
内置了三个角色:
集群管理员
操作步骤:
(1)创建users-manager角色,用于管理账户和角色;
(2)创建user-manager账号,角色选择users-manager;
(3)用user-manager登录,创建ws-manager、ws-admin、project-admin、project-regular四个账号;
企业空间管理员
企业空间 (workspace) 是 KubeSphere 实现多租户模式的基础,是用户管理项目、DevOps 工程和企业成员的基本单位。
操作步骤:
(1)用ws-manager账号登录,创建名为demo-workspace的企业空间,并指定ws-admin用户为管理员;
(2)用ws-admin账号登录,邀请project-admin和project-regular进入企业空间,且分别授予workspace-regular和workspace-viewer的角色;
项目和 DevOps 工程管理员
创建工作负载、服务和 CI/CD 流水线等资源之前,需要预先创建项目和 DevOps 工程。
操作步骤:
(1)用project-admin账号登录 KubeSphere,默认进入 demo-workspace 企业空间下,创建资源型项目demo-project;
(2)邀请project-regular用户进入该企业空间下的项目demo-project,角色选择operator;
设置外网访问
在创建应用路由之前,需要先启用外网访问入口,即网关。这一步是创建对应的应用路由控制器,负责接收项目外部进入的流量,并将请求转发到对应的后端服务。
默认 NodePort 即可
2.2. 应用路由
KubeSphere 在项目中为用户项目内置了一个全局的负载均衡器,即应用路由控制器 (Ingress Controller),为了代理不同后端服务 (Service) 而设置的负载均衡服务,用户访问 URL 时,应用路由控制器可以把请求转发给不同的后端服务。
Kubernetes Ingress 官方提供了这样一个例子:对于 https://cafe.example.com,如果访问 https://cafe.example.com/coffee则返回 “咖啡点餐系统”,如果访问 https://cafe.example.com/tea,则返回 “茶水点餐系统”。这两个系统分别由后端的 coffee 和 tea 这两个部署 (Deployment) 来提供服务。
分别创建tea和coffee两个服务
创建TLS证书秘钥
创建应用路由
由于没有DNS服务器,因此还是选择自动生成的域名吧,删除后重新配置一个
2.3. 创建简单任务
2.4. 配置中心
https://kubesphere.io/docs/zh-CN/configuration/secrets/
https://kubesphere.io/docs/zh-CN/configuration/image-registry/
密钥 (Secret) 解决了密码、token、密钥等敏感数据的配置问题,配置密钥后不需要把这些敏感数据暴露到镜像或者工作负载 (Pod) 的 Spec 中。密钥可以在创建工作负载时以存储卷或者环境变量的方式使用。
为了演示,再建一个项目s2i-test
2.5. Source-to-image
Source-to-image (S2I) 是一个允许用户直接输入源代码然后打包成可运行程序到 Docker 镜像的工具,在用户不需要了解 Dockerfile 的情况下方便构建镜像。它是通过将源代码放入一个负责编译源代码的 Builder image 中,自动将编译后的代码打包成 Docker 镜像。在 KubeSphere 中支持 S2I 构建镜像,也支持以创建服务的形式,一键将源代码生成镜像推送到仓库,并创建其部署 (Deployment) 和服务 (Service) 最终自动发布到 Kubernetes 中。
------------------------------华丽的分割线----------------------------
由于电脑又背回家了,所以,又得重新uninstall.sh和install.sh
今天,接着来~~~
访问GitHub和镜像仓库都是需要账号密码的,因此,提前先创建好密钥
镜像仓库用的阿里云
创建示例项目
2.6. 图形化构建流水线
https://kubesphere.io/docs/zh-CN/quick-start/jenkinsfile-out-of-scm/
使用图形化构建流水线(Jenkinsfile out of SCM),代码仓库中可以没有 Jenkinsfile,你可以在控制台通过可视化的方式构建流水线或编辑 Jenkinsfile 生成流水线,操作界面更友好。
构建可视化流水线共包含以下 6 个阶段 (stage),先通过一个流程图简单说明一下整个流水线的工作流:
详细说明每个阶段所执行的任务:
- 阶段一. Checkout SCM: 拉取 GitHub 仓库代码;
- 阶段二. Unit test: 单元测试,如果测试通过了才继续下面的任务;
- 阶段三. Code Analysis: 配置 SonarQube 进行静态代码质量检查与分析;
- 阶段四. Build and Push: 构建镜像,并将 tag 为 SNAPSHOT-$BUILD_NUMBER 推送至 DockerHub (其中 $BUILD_NUMBER 为 pipeline 活动列表的运行序号);
- 阶段五. Artifacts: 制作制品 (jar 包) 并保存;
- 阶段六. Deploy to DEV: 将项目部署到 Dev 环境,此阶段需要预先审核,若部署成功后则发送邮件。
创建凭证
创建流水线
最后,由于是从私有仓库中拉取镜像,可以将KubernetesDeploy配置到凭证中,就像前面push一样
3. DevOps工程
https://kubesphere.io/docs/zh-CN/devops/intro/
https://kubesphere.io/docs/zh-CN/quick-start/jenkinsfile-out-of-scm/
https://kubesphere.io/docs/zh-CN/system-settings/push-img-harbor/
安装 KubeSphere DevOps 系统的更多相关文章
- 安装KubeSphere
1. KubeSphere 是什么 1.1. 官方解释 KubeSphere是一个分布式操作系统,提供以Kubernetes为核心的云原生堆栈,旨在成为第三方应用程序的即插即用架构,以促进其生态系统的 ...
- 解决VirtualBox只能安装32位系统的问题
发现自己的笔记本(Thinkpad E440)里的 VirtualBox 只能安装 32位 的系统,如下图所示: 经过一番查资料,发现这玩意需要到BIOS里设置一下,方可安装 64位 系统,操作如下: ...
- 在VMware Workstation上安装CentOS6.5系统步
在VMware Workstation上安装CentOS6.5系统步骤 听语音 | 浏览:147 | 更新:2016-07-28 15:45 | 标签:安装 虚拟机 CENTOS 1 2 3 4 5 ...
- WIN7系统下U盘安装Ubuntu双系统
1. 准备工作 1. 官网下载Ubantu镜像,我下载的是Ubantu14.04.3 LTS版本: 2. 下载 Universal USB Installer (UUI)用于制作U盘启动盘: 3. 下 ...
- Ubuntu12.04安装64位系统出现编译错误error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or dir
问题: Ubuntu12.04安装64位系统出现编译错误error while loading shared libraries: libz.so.1: cannot open shared obje ...
- 一:解决VirtualBox只能安装32位系统的问题
发现自己的笔记本(Thinkpad E440)里的 VirtualBox 只能安装 32位 的系统,如下图所示: 经过一番查资料,发现这玩意需要到BIOS里设置一下,方可安装 64位 系统,操作如下: ...
- VMware安装64位操作系统提示Intel VT-x处于禁用状态的解决办法
用VMware安装64位操作系统时,如果目前本地的操作系统是64位的,那么可以说明CPU是肯定支持64位的,这时候如果提示此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态.这个 ...
- win7硬盘安装ubuntu双系统——注意项
WIN7 下硬盘安装ubuntu 12.04 博客分类: ubuntu 仅为网络上的资料整理 资料引用:http://www.ctocio.com.cn/35/12325035.shtml htt ...
- 解决在VMware中安装64位系统时“此主机具有虚拟化支持能力的,但虚拟化技术被禁用”的方法
您已经配置此虚拟机使用64位客户操作系统.然而,64位操作系统不可用.此主机具有虚拟化支持能力的,但虚拟化技术被禁用.这通常是因为虚拟化技术已经在BIOS /固件设置或禁用或主机没有权限改变此设置. ...
随机推荐
- java 精确加减
/** * 提供精确的加法运算. * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public double add(double v1, dou ...
- vue-codemirror + Java Compiler实现Java Web IDE
背景 最近同事告诉我一个很有趣的需求:让用户(应用场景中,一般为其他开发者)自己填入Java代码片段,代码片段的内容为已经规定好的模板类的继承类,实现模板类定义的方法.我们的项目要实现动态编译代码片段 ...
- Pandas读取文件报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start byte
pandas读取文件时报UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start by ...
- 前端自动化构建之webpack
前言 学了gulp后马上就开始学了一下webpack,所以马上来谈一下感受,感觉webpack有人说是一个模块化工具,用来和browserify来做比较,我感觉webpack牛逼多了,不但可以把复杂的 ...
- 谈谈C#多线程开发:并行、并发与异步编程
阅读导航 一.使用Task 二.并行编程 三.线程同步 四.异步编程模型 五.多线程数据安全 六.异常处理 概述 现代程序开发过程中不可避免会使用到多线程相关的技术,之所以要使用多线程,主要原因或目的 ...
- 前端练手小项目——网页版qq音乐仿写
qq音乐网页版仿写 一些步骤与注意事项 一开始肯定就是html+css布局和页面了,这段特别耗时间,耐心写完就好了 首先要说一下大致流程: 一定要先布局html!,所以一定要先分析页面布局情况,用不同 ...
- 【译】Gartner CWPP市场指南
https://www.gartner.com/doc/reprints?id=1-1YSHGBQ8&ct=200416&st=sb?utm_source=marketo&ut ...
- Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)
1.简介 上一篇中宏哥已经将其的理论知识介绍了一下,这一篇宏哥就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划. 2.网络计划实战 通过上一篇的学习,宏哥将其 ...
- 《学习scrapy框架爬小说》的进一步完善
一.完善目标: 1.为方便使用,把小说拼音或英文名,小说输出中文名,第一章节url地址变量化,修改这些参数即可爬取不同的小说. 2.修改settings.py设置文件,配置为记录debug的log信息 ...
- Chisel3 - Tutorial - ShiftRegister
https://mp.weixin.qq.com/s/LKiXUgSnt3DzgFLa9zLCmQ 简单的寄存器在时钟的驱动下,逐个往下传值. 参考链接: https://github.com ...