开发者学堂课程【云原生应用插件开源贡献课程 :如何在 velaux 页面部署 wordpress helm 应用(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1211/detail/18195
如何在 velaux 页面部署 wordpress helm 应用
内容介绍:
一、KubeVela 的安装
二、velaux 的一个内置的可视化的插件部署
三、官方 addon 的自定义拓扑图完善
今天的直播跟学课主要是带领大家一起完成从 KubeVela 的安装到 velaux 我们的一个内置的可视化的插件部署,到最后去完善我们官方 i 档的一些自定义拓扑图的一些步骤,带领大家一步步的去上手我们的云原生插件体系。
一、KubeVela 的安装
这是 KubeVela 的目前的一些官网,这一些简介介绍先跳过,大家有需要的可以在训练营里面的自学课里学习KubeVela 的一些基本概念,这边主要从我们最开始的如何安装去带领大家来进行一个步骤。我们目前安装是可以有多种安装方式的,比如你已经有一个 Kubernetes 集群,你可以在 Kubernetes 集群里面直接安装,当然如果没有也没有关系,我们可以直接使用我们的 velad 来进行一个安装。我们在这里来选择无依赖的一个独立安装。在这里我目前是准备了一台 ECS,我们可以根据步骤一步一步来实现。
首先第一步我们需要去下载一下 velad 这样一个 command。我们可以直接通过 curl 的方式去进行一个下载。
首先登录到我们这台 ecs ,直接通过 curl 的方式去进行我们 velad 这样一个 coi 的下载。它这里下载包会直接将我们 KubeVela 的所有的文件,包括我们内置的一个可视化的插件 velaux,包括一些镜像全部打包在内,包括里面会去实际的拉取一个 K3S,帮助我们把 KubeVela 的控制面给拉取。所以前面所以 command 的一个大小会比较大,大概在 400 兆左右。我们稍微等待一会。
可以看到这里我们的 velad 已经拉取完成,我们来看一下文档,里面写下一步是可以直接通过 velad去进行安装。同时我们可以把 bind IP 直接绑定到我们服务器的一个公网 IP ,这样方便我们后续直接把服务启动起之后做一个端口转发以及服务暴露。我在这里将我的把你的 IP 替换为我这台机器的官网 IP,可以看到他现在已经正在一步一步的去执行。首先他会先去拉起 k cs,之后会直接将我们的 vela 安装在里面。这个步骤也是取决于你的网络带宽,可能大概需要 3- 5 分钟左右的时间。
趁安装的时间,我们也可以来看下后面的文档。首先我们在 curl velad 后可以直进行安装之后,我们可以通过 velad 的一些 command 直接拿到 velad KubeVela 所安装的集群的 kubeconfig。我们可以通过使用环节变量方式拿到 kubeconfig 后,就可以直接在 kubeconfig 上面去进行我们命令的执行。比如这里可以用 vela components 的一个命令去查看当前集群的一些组件的状态,在完成这些安装之后,我们就可以直接去进行一个内置的 velaux 的安装。
二、velaux 的一个内置的可视化的插件部署
这里先简单介绍在我们的 KubeVela 整个体系当中,插件体系是一个无法缺少的集成的一个体系。有了这样一个插件体系,KubeVela 能够天然的和其他各种各样的开源项目去进行一个衔接,同时这样一个插件我们也可以由许许多多的社区去进行一个贡献。所以如果之前没有接触过开源项目,这是一个非常好的机会去帮你去在开源项目上进行一个上手。
我们看到他现在是正在进行 KubeVela 的一个安装。
这里也会是去把 KubeVela 整个的 helm chart 进行一个下载,并且进行安装。可以看到他现在是已经安装完成。
我们可以通过前面刚刚讲的命令,我们可以通过这样一个命令。第一步骤是直接使用当前 velad 所在的控制集群的这样一个 config。第二步是执行我们的 vela components 命令去查看当前 KubeVela 安装的状态是否是正确的。我们可以看到这里已经列出我们当前集群里面的所有的 components,也可以看到我们目前这样一个 vela 已经安装完成。它不需要你有任何的 k8s 集群,无论你是在本地还是在源端服务器,你需要使用这样一个命令就可以将KubeVela 一键式的完成安装。
完成安装之后,我们来将 valuex 这样一个插件去进行启动。这里我们使用的命令是 value addon enable。在这里目前我们使用的是一个当前文件系统里面的 valuex。我们在使用 value addon enable 的命令的时候,我们开启的 addon 既可以是本地目录下的 addon,也可以是我们远端 OSS registry 里面 KubeVela 内置提供的 addon,可以看到我们目前 addon 已经启动成功。
我们可以使用 value status 的命令去查看我们 addon 的状态。这里我们用 Vala /status addon Valex 命令直接查看 addon 的 application 的状态,后面通过-- endpoint 就可以看到 application 目前所带有的所有的服务的地址,可以看到我们这里直接将 addon 去进行安装启动。
因为它这里目前是一个 cluster IP 的状态,我们可以通过 vela forward 直接将 addon 去进行一个转发到本地,我们就可以直接启动。同时我们也可以换一种启动方式,我们在启动 addon 的时候,我们去给它加一个 servicetype,这样我们可以将 service type 设置为 Nodeport,我们就可以直接把 velaux的service 的状态变成 nodeport,这样我们可以直接通过官网 IP 去进行访问。我们在这里使用 vela addon upgrade 的命令去将 velaux进行升级。我们再次使用 vela status 命令去进行查看。可以看到,当我们将 velaux的一个 servicetype 变为 nodeport 后,我们可以直接使用官网 IP 加上 pod 的一个方式去访问到服务。我们可以直接点击链接进行跳转。可以看到我们现在处于 vela addon 的一个页面, velaux 这样一个页面。
同时在这里它有一个说明,我们的 velaux 默认是开启了身份认证,他需要一个用户名和密码的登录,默认的这样一个用户名是 admin,密码是 velaux12345。这些信息在我们的官网上都是直接可以看到的。所以当你第一次接触的时候,我们可以直接对照着文档来一步一步去实现。第一次登录之后他会要求你去进行一个密码的更新,我们可以在 velaux 的一个应用列表里面看到,我们当前集群里面目前只有 addon 这样一个应用。
首先我们 KubeVela 的插件,它所有的本质就是我们的一个 application。所以我们可以在应用列表里面看到集群里面所有的 application,包括它是系统的一些应用,比如像插件这样的应用,或者是我们自己部署的一些应用,我们可以在 tab 页插件列表里面看到我们目前官方的所有的一些内置的插件。比如我们已经启用的velaux,包括 K8S 内置的一些 third manager 以及 flux CD 等。因为我们 KubeVela 的一个 home 的部署的能力,我们没有自己再重新开发一套,而是以 addon 的一个方式去集成 flux CD 来作为底层 helm 应用部署的一个媒介。我们在这里可以直启动一下 flux CD 来查看状态,我们可以看到在这样一个 flux CD 的插件中,它除了需要选择版本进行一些属性的设定之外,我们可以在扩展能力看到它里面会带有哪一些这样哪些 definition?一旦我们将 addon 开启后,我们就可以在集群里,我们就可以在这个环境里面去使用这些 addon 里面默认涵盖的 definition。包括这里会有一个 read me 去会详细的解释 addon 的一些作用,以及如何启用它。里面的一些具体信息都会在这里去进行一些解释。
我们稍等一会,等 addon enable 完毕。在我们的开发者手册里面官方文档。开发者手册这里你也可以从插件系统里直接去看到有关于我们 Kubevela 插件系统的插件生态的一些更多的文档信息。我们可以在应用列表里面看到我们当前 flux CD 的 addon 应该是已经运行完成。将这两个 addon 开启之后,我们就可以在创建应用时去创建一个 helm 的应用。在这里我们以 word press 这样比较经典的应用来作为一个例子。我们在新增应用里面选择WordPress,同时我们去给他选择一个组件类型。在这个组件类型里面我们就可以使用 helm,因为我们已经通过 flus CD 这样一个 addon 的启动,就可以使用 helm 类型的一些组件类型。
在这里,对于一个 helm 应用,我们可以选择它的一个仓库地址,包括一些地址,内置我们在 velaux 里面去内置一个 bitnami,这也是一个比较经典的 helm chart 仓库。在这里我们可以直接搜索 word press,同时我们可以去进行高级的参数的设置。在这里做的一些参数设置,我们其实就可以去覆盖 chart 里面的一些 velaux 的一些设置。比如在这里我也是修改 servicetype,这里 service type 默认用的是 load balance。我在这里改成 nodeport。设置完成之后就可以点击创建应用。在应用创建完成之后,它是一个静态的配置,所以我们在这里需要点击部署,完成部署。在执行部署的时候,他其实是会有部署的工作流状态。