1. 安装KubeSpheredocker
安装了一晚上,终于看到了期待已久的画面后端
第一步、硬件配置(PS:VirtualBox虚拟机):服务器
操做系统:Ubuntu 18.04 负载均衡
CPU:4核curl
内存:8Gtcp
磁盘: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测试
主要是配置镜像加速,以及启用一些插件ui
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),先经过一个流程图简单说明一下整个流水线的工做流:
详细说明每一个阶段所执行的任务:
建立凭证
建立流水线
最后,因为是从私有仓库中拉取镜像,能够将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/