首页 > 其他 > 详细

安装 KubeSphere DevOps 系统

时间:2020-06-13 19:45:30      阅读:126      评论:0      收藏:0      [点我收藏+]

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.shinstall.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 系统

原文:https://www.cnblogs.com/cjsblog/p/13100301.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!