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/

最新文章

  1. 前端开发面试题收集(css部分)
  2. Sql Server 学习链接
  3. Drools规则
  4. HTML5的学习--performance获取加载时间的工具
  5. 【转】 class 和 struct 区别
  6. JAVA:三种集合LIST、SET、MAP
  7. Sybase 导入导出命令
  8. C#常用工具类——Excel操作类
  9. IO-File 文件 目录 基本操作 递归 遍历
  10. 一道月薪3W的java面试题 (小明和小强都是张老师的学生,张老师的生日是某月某日,2人都不知道张老师的生日)
  11. Android Studio NDK 代码 Source Insight调试 (NDK 目前开发方案 | NDK 编译 | 导入 so 库 | 项目编码转换)
  12. Linux没有最小只有更小----迷你Linux版本大集合(转)
  13. [C#] LINQ之SelectMany
  14. Springboot中Feign的使用总结
  15. C语言中猴子吃桃问题
  16. Windbg简明教程(转)
  17. 由已打开的文件读取数据---read
  18. 升级到php7和安装拓展(mac centos)
  19. String的非空判断、Integer的非空判断、list的大小判断,对象的非空判断
  20. mahout协同过滤算法各接口

热门文章

  1. PAT-1080 Graduate Admission (结构体排序)
  2. bzoj1497最大闭权图基础题
  3. JAVA设计模式之原型模式(prototype)
  4. css不换行解决
  5. Html响应式图片
  6. 《Head First 设计模式》:策略模式
  7. OpenStack的Trove组件详解
  8. PIC单片机的XC8
  9. 【JVM】体系结构及其细节
  10. DDD之2领域概念