Merge pull request #700 from wonderflow/fix3

Chore: update docs for faq and sidebar
This commit is contained in:
barnettZQG 2022-06-04 11:44:02 +08:00 committed by GitHub
commit 62275b8e6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 426 additions and 640 deletions

View File

@ -6,9 +6,25 @@ title: FAQ
Refer to the [comparison details](https://kubevela.io/docs/#kubevela-vs-other-software). Refer to the [comparison details](https://kubevela.io/docs/#kubevela-vs-other-software).
## You have reached your pull rate limit ## You have reached rate limit for Docker Image Registry
When you look into the logs of Pod kubevela-vela-core and found the issue as below. By default, the community use images from docker registry for installation. You can use the following alternatives:
1. You can use github container registry, check the [list of official images](https://github.com/orgs/kubevela/packages) for more details. Use it like:
```
docker pull ghcr.io/kubevela/kubevela/vela-core:latest
```
2. Alibaba Container Registry also sponsor KubeVela community, you can use `acr.kubevela.net/` as prefix, acr has a sync for each KubeVela official images. Use it like:
```
docker pull acr.kubevela.net/oamdev/vela-core:latest
```
* You can check if the error occurs by:
Check the logs of Pod kubevela-vela-core and found the issue as below.
``` ```
kubectl get pod -n vela-system -l app.kubernetes.io/name=vela-core kubectl get pod -n vela-system -l app.kubernetes.io/name=vela-core
@ -27,4 +43,13 @@ You can use github container registry instead.
docker pull ghcr.io/kubevela/kubevela/vela-core:latest docker pull ghcr.io/kubevela/kubevela/vela-core:latest
``` ```
## Do yo support Crossplane, what's the difference between terraform and corssplane in KubeVela?
KubeVela natively support Crossplane as they're already CRDs, while terraform was not a CRD controller, so the KubeVela community author a [terraform controller](https://github.com/kubevela/terraform-controller) for integration. You can choose any of them as you wish.
### What's the relationship between KubeVela and OAM? What will KubeVela mainly focus?
* OAM(Open Application Model) is the model behind KubeVela, it provides a platform-agnostic application model including the best practices and methodology for different vendors to follow. The evolution of the model depends primarily on the practices of KubeVela currently.
* KubeVela is the control plane running on Kubernetes, it works as a CRD controller and brings OAM model into your Cloud Native PaaS along with lots of addon capabilities. KubeVela will mainly focus on application delivery, the goal is to make deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable.

View File

@ -305,5 +305,8 @@
}, },
"sidebar.docs.category.General CD Features": { "sidebar.docs.category.General CD Features": {
"message": "通用功能" "message": "通用功能"
},
"sidebar.docs.category.UX Customization": {
"message": "定制 UI"
} }
} }

View File

@ -23,7 +23,7 @@ Install auto-scaler trait controller with helm
```shell script ```shell script
helm install --create-namespace -n vela-system autoscalertrait oam.catalog/autoscalertrait helm install --create-namespace -n vela-system autoscalertrait oam.catalog/autoscalertrait
Autoscale depends on metrics server, please [enable it in your Kubernetes cluster](../references/devex/faq#autoscale-how-to-enable-metrics-server-in-various-kubernetes-clusters) at the beginning. Autoscale depends on metrics server, please enable it in your Kubernetes cluster at the beginning.
> Note: autoscale is one of the extension capabilities [installed from cap center](../cap-center), > Note: autoscale is one of the extension capabilities [installed from cap center](../cap-center),
> please install it if you can't find it in `vela traits`. > please install it if you can't find it in `vela traits`.

View File

@ -1,305 +0,0 @@
---
title: FAQ
---
## 对比 X
### KubeVela 和 Helm 有什么区别?
KubeVela 是一个平台构建工具,用于创建基于 Kubernete 的易使用、可拓展的应用交付/管理系统。KubeVela 将 Helm 作为模板引擎和应用包的标准。但是 Helm 不是 KubeVela 唯一支持的模板模块。另一个同样最优先支持的是 CUE。
同时KubeVela 被设计为 Kubernetes 的一个控制器(即工作在服务端),即使是其 Helm 部分,也会安装一个 Helm Operator。
## 常见问题
### 目前 KubeVela 中使用的 Crossplane 云资源数量支持比较有限的,是否有计划加快开发、增加云资源数量?
目前 KubeVela 支持 Crossplane 和 Terraform Controller 两种模式提供云资源Terraform Controller 可以直接使用现成的 Terraform 模块,所以支持的云资源广度和数量都相对庞大,对于 Crossplane 不支持的云资源,可以考虑使用 Terraform Controller。目前 KubeVela 正在添加常用的云资源最佳实践用例,到 1.2 版本常用云资源都可以开箱即用。
另一方面Crossplane 中 阿里云的云资源支持也是由 KubeVela 的维护团队在负责维护,我们也非常乐意支持比较常用的云资源,在 Crossplane 项目中做更精细化的支持,所以比较倾向于使用 Crossplane 的用户可以在社区提 Issue 表达诉求,我们会根据用户的意愿确定开发计划。
### Kubevela 未来具体要往哪个方向发展,是基于 GitOps 的 CD 工具还是基于Workflow 的类似于 Tekton 或 Argo Worflow 这样的 Pipeline还是重点在 OAM 的实现上?
KubeVela 和 OAM 是一体的OAM 是 KubeVela 背后的模型,随着 KubeVela 的演进OAM 模型也会随之迭代发展。
从最开始我们提出 OAM 模型,希望能够通过关注点分离的理念,降低云原生应用管理的复杂度,到后来出现 KubeVela 开箱即用的应用管理引擎,再到 v1.1 发布了混合云应用交付功能和工作流引擎。KubeVela 和 OAM 要解决的问题一直都是“让云原生的应用交付和应用管理更简单”。
为了让云原生应用交付和管理更简单,我们需要标准化的模型,以应用为中心降低用户使用门槛和心智负担,同时支持工作流、多集群等技术,也是为了让应用交付可以更流畅、更高效、成本更低。整个理念和发展方向都是一致的。
整体来说Kubevela 正在向一款:原生面向混合云环境,以应用为中心的发布流水线一体化平台演进。
### Error: unable to create new content in namespace cert-manager because it is being terminated
你可能偶尔会碰到如下问题。它发生在上一个 KubeVele 版本没有删除完成时。
```
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Failed to install the chart with error: serviceaccounts "cert-manager-cainjector" is forbidden: unable to create new content in namespace cert-manager because it is being terminated
failed to create resource
helm.sh/helm/v3/pkg/kube.(*Client).Update.func1
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/kube/client.go:190
...
Error: failed to create resource: serviceaccounts "cert-manager-cainjector" is forbidden: unable to create new content in namespace cert-manager because it is being terminated
```
稍事休息,然后在几秒内重试。
```
$ vela install
- Installing Vela Core Chart:
Vela system along with OAM runtime already exist.
Automatically discover capabilities successfully ✅ Add(0) Update(0) Delete(8)
TYPE CATEGORY DESCRIPTION
-task workload One-off task to run a piece of code or script to completion
-webservice workload Long-running scalable service with stable endpoint to receive external traffic
-worker workload Long-running scalable backend worker without network endpoint
-autoscale trait Automatically scale the app following certain triggers or metrics
-metrics trait Configure metrics targets to be monitored for the app
-rollout trait Configure canary deployment strategy to release the app
-route trait Configure route policy to the app
-scaler trait Manually scale the app
- Finished successfully.
```
手动应用所有 WorkloadDefinition 和 TraitDefinition manifests 以恢复所有功能。
```
$ kubectl apply -f charts/vela-core/templates/defwithtemplate
traitdefinition.core.oam.dev/autoscale created
traitdefinition.core.oam.dev/scaler created
traitdefinition.core.oam.dev/metrics created
traitdefinition.core.oam.dev/rollout created
traitdefinition.core.oam.dev/route created
workloaddefinition.core.oam.dev/task created
workloaddefinition.core.oam.dev/webservice created
workloaddefinition.core.oam.dev/worker created
$ vela workloads
Automatically discover capabilities successfully ✅ Add(8) Update(0) Delete(0)
TYPE CATEGORY DESCRIPTION
+task workload One-off task to run a piece of code or script to completion
+webservice workload Long-running scalable service with stable endpoint to receive external traffic
+worker workload Long-running scalable backend worker without network endpoint
+autoscale trait Automatically scale the app following certain triggers or metrics
+metrics trait Configure metrics targets to be monitored for the app
+rollout trait Configure canary deployment strategy to release the app
+route trait Configure route policy to the app
+scaler trait Manually scale the app
NAME DESCRIPTION
task One-off task to run a piece of code or script to completion
webservice Long-running scalable service with stable endpoint to receive external traffic
worker Long-running scalable backend worker without network endpoint
```
### Error: ScopeDefinition exists
你可能偶尔会碰到如下问题。它发生在存在一个老的 OAM Kubernetes Runtime 发行版时,或者你之前已经部署过 `ScopeDefinition`
```
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Failed to install the chart with error: ScopeDefinition "healthscopes.core.oam.dev" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "kubevela": current value is "oam"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "vela-system": current value is "oam-system"
rendered manifests contain a resource that already exists. Unable to continue with install
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/action/install.go:274
...
Error: rendered manifests contain a resource that already exists. Unable to continue with install: ScopeDefinition "healthscopes.core.oam.dev" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "kubevela": current value is "oam"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "vela-system": current value is "oam-system"
```
删除 `ScopeDefinition` "healthscopes.core.oam.dev" 然后重试.
```
$ kubectl delete ScopeDefinition "healthscopes.core.oam.dev"
scopedefinition.core.oam.dev "healthscopes.core.oam.dev" deleted
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Successfully installed the chart, status: deployed, last deployed time = 2020-12-03 16:26:41.491426 +0800 CST m=+4.026069452
WARN: handle workload template `containerizedworkloads.core.oam.dev` failed: no template found, you will unable to use this workload capabilityWARN: handle trait template `manualscalertraits.core.oam.dev` failed
: no template found, you will unable to use this trait capabilityAutomatically discover capabilities successfully ✅ Add(8) Update(0) Delete(0)
TYPE CATEGORY DESCRIPTION
+task workload One-off task to run a piece of code or script to completion
+webservice workload Long-running scalable service with stable endpoint to receive external traffic
+worker workload Long-running scalable backend worker without network endpoint
+autoscale trait Automatically scale the app following certain triggers or metrics
+metrics trait Configure metrics targets to be monitored for the app
+rollout trait Configure canary deployment strategy to release the app
+route trait Configure route policy to the app
+scaler trait Manually scale the app
- Finished successfully.
```
### You have reached your pull rate limit
当你查看 Pod kubevela-vela-core 的日志并发现如下问题时。
```
$ kubectl get pod -n vela-system -l app.kubernetes.io/name=vela-core
NAME READY STATUS RESTARTS AGE
kubevela-vela-core-f8b987775-wjg25 0/1 - 0 35m
```
>Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by
>authenticating and upgrading: https://www.docker.com/increase-rate-limit
你可以换成 github 的镜像仓库。
```
$ docker pull ghcr.io/kubevela/kubevela/vela-core:latest
```
### Warning: Namespace cert-manager exists
如果碰到以下问题,则可能存在一个 `cert-manager` 发行版,其 namespace 及 RBAC 相关资源与 KubeVela 存在冲突。
```
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Failed to install the chart with error: Namespace "cert-manager" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
rendered manifests contain a resource that already exists. Unable to continue with install
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/action/install.go:274
...
/opt/hostedtoolcache/go/1.14.12/x64/src/runtime/asm_amd64.s:1373
Error: rendered manifests contain a resource that already exists. Unable to continue with install: Namespace "cert-manager" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
```
尝试如下步骤修复这个问题。
- 删除 `cert-manager` 发行版
- 删除 `cert-manager` namespace
- 重装 KubeVela
```
$ helm delete cert-manager -n cert-manager
release "cert-manager" uninstalled
$ kubectl delete ns cert-manager
namespace "cert-manager" deleted
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Successfully installed the chart, status: deployed, last deployed time = 2020-12-04 10:46:46.782617 +0800 CST m=+4.248889379
Automatically discover capabilities successfully ✅ (no changes)
TYPE CATEGORY DESCRIPTION
task workload One-off task to run a piece of code or script to completion
webservice workload Long-running scalable service with stable endpoint to receive external traffic
worker workload Long-running scalable backend worker without network endpoint
autoscale trait Automatically scale the app following certain triggers or metrics
metrics trait Configure metrics targets to be monitored for the app
rollout trait Configure canary deployment strategy to release the app
route trait Configure route policy to the app
scaler trait Manually scale the app
- Finished successfully.
```
### 如何修复问题MutatingWebhookConfiguration mutating-webhook-configuration exists?
如果你部署的其他服务会安装 MutatingWebhookConfiguration mutating-webhook-configuration则安装 KubeVela 时会碰到如下问题。
```shell
- Installing Vela Core Chart:
install chart vela-core, version v0.2.1, desc : A Helm chart for Kube Vela core, contains 36 file
Failed to install the chart with error: MutatingWebhookConfiguration "mutating-webhook-configuration" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
rendered manifests contain a resource that already exists. Unable to continue with install
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/action/install.go:274
github.com/kubevela/kubevela/pkg/commands.InstallOamRuntime
/home/runner/work/kubevela/kubevela/pkg/commands/system.go:259
github.com/kubevela/kubevela/pkg/commands.(*initCmd).run
/home/runner/work/kubevela/kubevela/pkg/commands/system.go:162
github.com/kubevela/kubevela/pkg/commands.NewInstallCommand.func2
/home/runner/work/kubevela/kubevela/pkg/commands/system.go:119
github.com/spf13/cobra.(*Command).execute
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:850
github.com/spf13/cobra.(*Command).ExecuteC
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:958
github.com/spf13/cobra.(*Command).Execute
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:895
main.main
/home/runner/work/kubevela/kubevela/references/cmd/cli/main.go:16
runtime.main
/opt/hostedtoolcache/go/1.14.13/x64/src/runtime/proc.go:203
runtime.goexit
/opt/hostedtoolcache/go/1.14.13/x64/src/runtime/asm_amd64.s:1373
Error: rendered manifests contain a resource that already exists. Unable to continue with install: MutatingWebhookConfiguration "mutating-webhook-configuration" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
```
要解决这个问题,请从 [KubeVela releases](https://github.com/kubevela/kubevela/releases) 将 KubeVela Cli `vela` 版本升级到 `v0.2.2` 以上。
## 运维
### Autoscale: 如何在多个 Kubernetes 集群上开启 metrics server
运维 Autoscale 依赖 metrics server所以它在许多集群中都是开启的。请通过命令 `kubectl top nodes``kubectl top pods` 检查 metrics server 是否开启。
如果输出如下相似内容,那么 metrics 已经开启。
```shell
$ kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
cn-hongkong.10.0.1.237 288m 7% 5378Mi 78%
cn-hongkong.10.0.1.238 351m 8% 5113Mi 74%
$ kubectl top pods
NAME CPU(cores) MEMORY(bytes)
php-apache-65f444bf84-cjbs5 0m 1Mi
wordpress-55c59ccdd5-lf59d 1m 66Mi
```
或者需要在你的 kubernetes 集群中手动开启 metrics 。
- ACK (Alibaba Cloud Container Service for Kubernetes)
Metrics server 已经开启。
- ASK (Alibaba Cloud Serverless Kubernetes)
Metrics server 已经在如下 [Alibaba Cloud console](https://cs.console.aliyun.com/) `Operations/Add-ons` 部分开启。
![](../../../resources/install-metrics-server-in-ASK.jpg)
如果你有更多问题,请访问 [metrics server 排错指导](https://help.aliyun.com/document_detail/176515.html) 。
- Kind
使用如下命令安装 metrics server或者可以安装 [最新版本](https://github.com/kubernetes-sigs/metrics-server#installation)。
```shell
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
```
并且在通过 `kubectl edit deploy -n kube-system metrics-server` 加载的 yaml 文件中 `.spec.template.spec.containers` 下增加如下部分。
注意:这里只是一个示例,而不是用于生产级别的使用。
```
command:
- /metrics-server
- --kubelet-insecure-tls
```
- MiniKube
使用如下命令开启。
```shell
$ minikube addons enable metrics-server
```
享受在你的应用中 [设置 autoscale](../../extensions/set-autoscale)。

View File

@ -56,7 +56,7 @@ spec:
在实际使用时,用户通过上述 Application 对象来引用预置的组件、运维特征、应用策略、以及工作流节点模块,填写这些模块暴露的用户参数即可完成一次对应用交付的建模。 在实际使用时,用户通过上述 Application 对象来引用预置的组件、运维特征、应用策略、以及工作流节点模块,填写这些模块暴露的用户参数即可完成一次对应用交付的建模。
> 注意:上诉可插拔模块在 OAM 中称为 X-DefinitionsApplication 对象负责引用 X-Definitions 并对用户输入进行校验,而各模块具体的可填写参数则是约束在相应的 X-Definition 文件当中的。具体请参考: [模块定义(X-Definition](./x-definition) 章节。 > 注意:上诉可插拔模块在 OAM 中称为 X-DefinitionsApplication 对象负责引用 X-Definitions 并对用户输入进行校验,而各模块具体的可填写参数则是约束在相应的 X-Definition 文件当中的。具体请参考: [模块定义(Definition](./x-definition) 章节。
## 组件Component ## 组件Component

View File

@ -1,5 +1,5 @@
--- ---
title: 模块定义(X-Definition title: 模块定义Definition
--- ---
KubeVela 是完全可编程的,它可以轻松的根据你的需求实现原地定制和扩展。 KubeVela 是完全可编程的,它可以轻松的根据你的需求实现原地定制和扩展。

View File

@ -11,7 +11,7 @@
"message": "核心概念", "message": "核心概念",
"description": "The label for Core Concepts in sidebar docs" "description": "The label for Core Concepts in sidebar docs"
}, },
"sidebar.docs.category.Learning CUE": { "sidebar.docs.category.CUE in KubeVela": {
"message": "CUE 语言", "message": "CUE 语言",
"description": "The label for category Learning CUE in sidebar docs" "description": "The label for category Learning CUE in sidebar docs"
}, },
@ -35,13 +35,13 @@
"message": "实践实验室", "message": "实践实验室",
"description": "The label for category Hands-on Lab in sidebar docs" "description": "The label for category Hands-on Lab in sidebar docs"
}, },
"sidebar.docs.category.Appfile": { "sidebar.docs.category.Authentication and Authorization": {
"message": "Appfile", "message": "认证和授权",
"description": "The label for category Appfile in sidebar docs" "description": "The label for category Authentication and Authorization in sidebar docs"
}, },
"sidebar.docs.category.Roadmap": { "sidebar.docs.category.Conventions": {
"message": "路线规划", "message": "开发规约",
"description": "KubeVela 未来的发展计划" "description": "KubeVela developer Conventions"
}, },
"sidebar.docs.category.Application Deployment": { "sidebar.docs.category.Application Deployment": {
"message": "Application Deployment", "message": "Application Deployment",
@ -99,6 +99,10 @@
"message": "工作流系统", "message": "工作流系统",
"description": "The label for category Workflow System in sidebar docs" "description": "The label for category Workflow System in sidebar docs"
}, },
"sidebar.docs.category.Patch and Override": {
"message": "配置覆盖",
"description": "The label for category Patch and Override in sidebar docs"
},
"sidebar.docs.category.Operator Manual": { "sidebar.docs.category.Operator Manual": {
"message": "运维手册", "message": "运维手册",
"description": "The label for category Operator Manual in sidebar docs" "description": "The label for category Operator Manual in sidebar docs"
@ -159,8 +163,8 @@
"message": "调试指南", "message": "调试指南",
"description": "The label for category Debugging in sidebar docs" "description": "The label for category Debugging in sidebar docs"
}, },
"sidebar.docs.category.Extension": { "sidebar.docs.category.Contribute Extension": {
"message": "平台扩展", "message": "贡献平台扩展",
"description": "平台扩展参考文档" "description": "平台扩展参考文档"
}, },
"sidebar.docs.category.Simple Template": { "sidebar.docs.category.Simple Template": {
@ -203,16 +207,16 @@
"message": "触发器管理", "message": "触发器管理",
"description": "通过 Dashboard 对应用触发器的管理操作说明" "description": "通过 Dashboard 对应用触发器的管理操作说明"
}, },
"sidebar.docs.category.Manage integration configs": { "sidebar.docs.category.Manage Config of Integration": {
"message": "集成配置管理", "message": "集成配置管理",
"description": "外部系统集成相关配置的管理说明" "description": "外部系统集成相关配置的管理说明"
}, },
"sidebar.docs.category.Manage resource": { "sidebar.docs.category.Cluster Management": {
"message": "资源管理", "message": "资源管理",
"description": "管理集群和交付目标等资源" "description": "管理集群和交付目标等资源"
}, },
"sidebar.docs.category.Built-in Addons": { "sidebar.docs.category.Official Addons": {
"message": "内置插件", "message": "官方插件",
"description": "内置插件说明" "description": "内置插件说明"
}, },
"sidebar.docs.category.Cloud Resources": { "sidebar.docs.category.Cloud Resources": {
@ -251,13 +255,9 @@
"message": "其他高级功能", "message": "其他高级功能",
"description": "其他高级功能" "description": "其他高级功能"
}, },
"sidebar.docs.category.Core Concepts": { "sidebar.docs.category.Artifacts": {
"message": "核心概念", "message": "交付制品",
"description": "Basic information" "description": "多样化交付制品"
},
"sidebar.docs.category.Deploy with more workload type": {
"message": "更多组件类型",
"description": "非常用的组件类型"
}, },
"sidebar.docs.category.User Guide": { "sidebar.docs.category.User Guide": {
"message": "用户手册", "message": "用户手册",
@ -274,5 +274,36 @@
"sidebar.docs.category.How-to manage the applications": { "sidebar.docs.category.How-to manage the applications": {
"message": "应用基础管理", "message": "应用基础管理",
"description": "提供基础管理能力说明" "description": "提供基础管理能力说明"
},
"sidebar.docs.category.CI Integration": {
"message": "CI 集成",
"description": "CI 集成"
},
"sidebar.docs.category.Developer Guide": {
"message": "开发者手册",
"description": "developer guide for sidebar"
},
"sidebar.docs.category.User Management": {
"message": "用户管理",
"description": "User management for sidebar"
},
"sidebar.docs.category.Advanced Installation": {
"message": "高级安装",
"description": "Advanced Installation for sidebar"
},
"sidebar.docs.category.Helm Chart CD": {
"message": "Helm Chart 交付"
},
"sidebar.docs.category.Container Image CD": {
"message": "容器镜像交付"
},
"sidebar.docs.category.Cloud Resources CD": {
"message": "云资源交付"
},
"sidebar.docs.category.Kubernetes Manifest CD": {
"message": "Kubernetes 资源交付"
},
"sidebar.docs.category.General CD Features": {
"message": "通用功能"
} }
} }

View File

@ -0,0 +1,312 @@
{
"version.label": {
"message": "v1.4",
"description": "The label for version current"
},
"sidebar.docs.category.Getting Started": {
"message": "快速开始",
"description": "The label for category Getting Started in sidebar docs"
},
"sidebar.docs.category.Core Concepts": {
"message": "核心概念",
"description": "The label for Core Concepts in sidebar docs"
},
"sidebar.docs.category.CUE in KubeVela": {
"message": "CUE 语言",
"description": "The label for category Learning CUE in sidebar docs"
},
"sidebar.docs.category.Helm": {
"message": "Helm",
"description": "The label for category Helm in sidebar docs"
},
"sidebar.docs.category.Raw Template": {
"message": "Raw Template",
"description": "The label for category Raw Template in sidebar docs"
},
"sidebar.docs.category.Traits System": {
"message": "运维特征系统",
"description": "The label for category Traits System in sidebar docs"
},
"sidebar.docs.category.Defining Cloud Service": {
"message": "定义 Cloud Service",
"description": "The label for category Defining Cloud Service in sidebar docs"
},
"sidebar.docs.category.Hands-on Lab": {
"message": "实践实验室",
"description": "The label for category Hands-on Lab in sidebar docs"
},
"sidebar.docs.category.Authentication and Authorization": {
"message": "认证和授权",
"description": "The label for category Authentication and Authorization in sidebar docs"
},
"sidebar.docs.category.Conventions": {
"message": "开发规约",
"description": "KubeVela developer Conventions"
},
"sidebar.docs.category.Application Deployment": {
"message": "Application Deployment",
"description": "The label for category Application Deployment in sidebar docs"
},
"sidebar.docs.category.More Operations": {
"message": "更多操作",
"description": "The label for category More Operations in sidebar docs"
},
"sidebar.docs.category.Platform Operation Guide": {
"message": "Platform Operation Guide",
"description": "The label for category Platform Operation Guide in sidebar docs"
},
"sidebar.docs.category.Using KubeVela CLI": {
"message": "使用命令行工具",
"description": "The label for category Using KubeVela CLI in sidebar docs"
},
"sidebar.docs.category.Managing Applications": {
"message": "管理应用",
"description": "The label for category Managing Applications in sidebar docs"
},
"sidebar.docs.category.References": {
"message": "参考",
"description": "The label for category References in sidebar docs"
},
"sidebar.docs.category.Learning OAM": {
"message": "开放应用模型",
"description": "The label for category Learning OAM in sidebar docs"
},
"sidebar.docs.category.Environment System": {
"message": "交付环境系统",
"description": "The label for category Environment System in sidebar docs"
},
"sidebar.docs.category.Designing Workflow": {
"message": "设计交付工作流",
"description": "The label for category Workflow End User in sidebar docs"
},
"sidebar.docs.category.Install": {
"message": "安装",
"description": "The label for category Install in sidebar docs"
},
"sidebar.docs.doc.Deliver First Application": {
"message": "交付第一个应用",
"description": "The label for doc deliver-first-app in sidebar docs"
},
"sidebar.docs.category.Continuous Delivery": {
"message": "持续交付",
"description": "The label for category Continuous Delivery in sidebar docs"
},
"sidebar.docs.category.Manage Your Application": {
"message": "管理你的应用",
"description": "The label for category Manage Your Application in sidebar docs"
},
"sidebar.docs.category.Workflow System": {
"message": "工作流系统",
"description": "The label for category Workflow System in sidebar docs"
},
"sidebar.docs.category.Patch and Override": {
"message": "配置覆盖",
"description": "The label for category Patch and Override in sidebar docs"
},
"sidebar.docs.category.Operator Manual": {
"message": "运维手册",
"description": "The label for category Operator Manual in sidebar docs"
},
"sidebar.docs.category.Customize Traits": {
"message": "自定义运维特征",
"description": "The label for category Customize Traits in sidebar docs"
},
"sidebar.docs.category.Customize Components": {
"message": "自定义组件",
"description": "The label for category Customize Traits in sidebar docs"
},
"sidebar.docs.category.CLI": {
"message": "CLI 命令行",
"description": "The label for category CLI in sidebar docs"
},
"sidebar.docs.category.Capabilities": {
"message": "Capabilities",
"description": "The label for category Capabilities in sidebar docs"
},
"sidebar.docs.category.Appendix": {
"message": "附录",
"description": "The label for category Appendix in sidebar docs"
},
"sidebar.docs.category.Component System": {
"message": "组件系统",
"description": "The label for category Component System in sidebar docs"
},
"sidebar.docs.category.Vela CLI Manuals": {
"message": "Vela CLI 手册",
"description": "The label for category Vela CLI Manuals in sidebar docs"
},
"sidebar.docs.category.Deploying Components": {
"message": "选择待交付组件",
"description": "The label for category Components in sidebar docs"
},
"sidebar.docs.category.Attaching Traits": {
"message": "绑定运维特征",
"description": "The label for category Traits in sidebar docs"
},
"sidebar.docs.category.Defining Policies": {
"message": "设定应用策略",
"description": "The label for category Policies in sidebar docs"
},
"sidebar.docs.category.Best Practices": {
"message": "最佳实践",
"description": "The label for category case studies in sidebar docs"
},
"sidebar.docs.category.Observability": {
"message": "新增可观测性",
"description": "The label for category Observability in sidebar docs"
},
"sidebar.docs.category.Scaling": {
"message": "扩缩容",
"description": "The label for category Scaler in sidebar docs"
},
"sidebar.docs.category.Debugging": {
"message": "调试指南",
"description": "The label for category Debugging in sidebar docs"
},
"sidebar.docs.category.Contribute Extension": {
"message": "贡献平台扩展",
"description": "平台扩展参考文档"
},
"sidebar.docs.category.Simple Template": {
"message": "Simple Template",
"description": "The label for category Simple Template in sidebar docs"
},
"sidebar.docs.category.Cloud Services": {
"message": "云服务组件",
"description": "The label for category Cloud Services in sidebar docs"
},
"sidebar.docs.category.CUE": {
"message": "CUE 组件",
"description": "The label for category CUE Components in sidebar docs"
},
"sidebar.docs.category.Addons": {
"message": "插件系统",
"description": "The extended add-ons"
},
"sidebar.docs.category.Tutorials": {
"message": "实践教程",
"description": "KubeVela 实践教程"
},
"sidebar.docs.category.How-to Guides": {
"message": "操作手册",
"description": "CLI 和 Dashboard 的操作指导手册"
},
"sidebar.docs.category.Deploy applications": {
"message": "交付应用",
"description": "通过 Dashboard 对应用的管理操作说明"
},
"sidebar.docs.category.Manage traits": {
"message": "运维特征管理",
"description": "通过 Dashboard 对应用的运维特征管理操作说明"
},
"sidebar.docs.category.Manage workflows": {
"message": "工作流管理",
"description": "通过 Dashboard 对应用的工作流管理操作说明"
},
"sidebar.docs.category.Manage triggers": {
"message": "触发器管理",
"description": "通过 Dashboard 对应用触发器的管理操作说明"
},
"sidebar.docs.category.Manage Config of Integration": {
"message": "集成配置管理",
"description": "外部系统集成相关配置的管理说明"
},
"sidebar.docs.category.Cluster Management": {
"message": "资源管理",
"description": "管理集群和交付目标等资源"
},
"sidebar.docs.category.Official Addons": {
"message": "官方插件",
"description": "内置插件说明"
},
"sidebar.docs.category.Cloud Resources": {
"message": "云资源",
"description": "云资源"
},
"sidebar.docs.category.Supported Cloud Resource": {
"message": "支持的云资源",
"description": "支持的云资源列表"
},
"sidebar.docs.category.Built-in Component Type": {
"message": "内置组件",
"description": "内置组件列表"
},
"sidebar.docs.category.Built-in Trait Type": {
"message": "内置运维特征",
"description": "内置运维特征列表"
},
"sidebar.docs.category.Built-in Policy Type": {
"message": "内置策略",
"description": "内置策略列表"
},
"sidebar.docs.category.Custom Addons": {
"message": "自定义插件",
"description": "自定义插件"
},
"sidebar.docs.category.Multi-Cluster Delivery": {
"message": "多集群交付",
"description": "多集群交付"
},
"sidebar.docs.category.Day-2 Operations": {
"message": "应用运维",
"description": "应用运维"
},
"sidebar.docs.category.Advanced Features": {
"message": "其他高级功能",
"description": "其他高级功能"
},
"sidebar.docs.category.Artifacts": {
"message": "交付制品",
"description": "多样化交付制品"
},
"sidebar.docs.category.User Guide": {
"message": "用户手册",
"description": "引导用户学习使用 KubeVela 各项特性"
},
"sidebar.docs.category.Install or upgrade": {
"message": "平台安装或升级手册",
"description": "详细解读平台的各种部署方式"
},
"sidebar.docs.category.How-to manage the cloud resources": {
"message": "云服务管理",
"description": "提供云服务的使用和管理相关能力说明"
},
"sidebar.docs.category.How-to manage the applications": {
"message": "应用基础管理",
"description": "提供基础管理能力说明"
},
"sidebar.docs.category.CI Integration": {
"message": "CI 集成",
"description": "CI 集成"
},
"sidebar.docs.category.Developer Guide": {
"message": "开发者手册",
"description": "developer guide for sidebar"
},
"sidebar.docs.category.User Management": {
"message": "用户管理",
"description": "User management for sidebar"
},
"sidebar.docs.category.Advanced Installation": {
"message": "高级安装",
"description": "Advanced Installation for sidebar"
},
"sidebar.docs.category.Helm Chart CD": {
"message": "Helm Chart 交付"
},
"sidebar.docs.category.Container Image CD": {
"message": "容器镜像交付"
},
"sidebar.docs.category.Cloud Resources CD": {
"message": "云资源交付"
},
"sidebar.docs.category.Kubernetes Manifest CD": {
"message": "Kubernetes 资源交付"
},
"sidebar.docs.category.General CD Features": {
"message": "通用功能"
},
"sidebar.docs.category.UX Customization": {
"message": "定制 UI"
}
}

View File

@ -23,7 +23,7 @@ Install auto-scaler trait controller with helm
```shell script ```shell script
helm install --create-namespace -n vela-system autoscalertrait oam.catalog/autoscalertrait helm install --create-namespace -n vela-system autoscalertrait oam.catalog/autoscalertrait
Autoscale depends on metrics server, please [enable it in your Kubernetes cluster](../references/devex/faq#autoscale-how-to-enable-metrics-server-in-various-kubernetes-clusters) at the beginning. Autoscale depends on metrics server, please enable it in your Kubernetes cluster at the beginning.
> Note: autoscale is one of the extension capabilities [installed from cap center](../cap-center), > Note: autoscale is one of the extension capabilities [installed from cap center](../cap-center),
> please install it if you can't find it in `vela traits`. > please install it if you can't find it in `vela traits`.

View File

@ -1,305 +0,0 @@
---
title: FAQ
---
## 对比 X
### KubeVela 和 Helm 有什么区别?
KubeVela 是一个平台构建工具,用于创建基于 Kubernete 的易使用、可拓展的应用交付/管理系统。KubeVela 将 Helm 作为模板引擎和应用包的标准。但是 Helm 不是 KubeVela 唯一支持的模板模块。另一个同样最优先支持的是 CUE。
同时KubeVela 被设计为 Kubernetes 的一个控制器(即工作在服务端),即使是其 Helm 部分,也会安装一个 Helm Operator。
## 常见问题
### 目前 KubeVela 中使用的 Crossplane 云资源数量支持比较有限的,是否有计划加快开发、增加云资源数量?
目前 KubeVela 支持 Crossplane 和 Terraform Controller 两种模式提供云资源Terraform Controller 可以直接使用现成的 Terraform 模块,所以支持的云资源广度和数量都相对庞大,对于 Crossplane 不支持的云资源,可以考虑使用 Terraform Controller。目前 KubeVela 正在添加常用的云资源最佳实践用例,到 1.2 版本常用云资源都可以开箱即用。
另一方面Crossplane 中 阿里云的云资源支持也是由 KubeVela 的维护团队在负责维护,我们也非常乐意支持比较常用的云资源,在 Crossplane 项目中做更精细化的支持,所以比较倾向于使用 Crossplane 的用户可以在社区提 Issue 表达诉求,我们会根据用户的意愿确定开发计划。
### Kubevela 未来具体要往哪个方向发展,是基于 GitOps 的 CD 工具还是基于Workflow 的类似于 Tekton 或 Argo Worflow 这样的 Pipeline还是重点在 OAM 的实现上?
KubeVela 和 OAM 是一体的OAM 是 KubeVela 背后的模型,随着 KubeVela 的演进OAM 模型也会随之迭代发展。
从最开始我们提出 OAM 模型,希望能够通过关注点分离的理念,降低云原生应用管理的复杂度,到后来出现 KubeVela 开箱即用的应用管理引擎,再到 v1.1 发布了混合云应用交付功能和工作流引擎。KubeVela 和 OAM 要解决的问题一直都是“让云原生的应用交付和应用管理更简单”。
为了让云原生应用交付和管理更简单,我们需要标准化的模型,以应用为中心降低用户使用门槛和心智负担,同时支持工作流、多集群等技术,也是为了让应用交付可以更流畅、更高效、成本更低。整个理念和发展方向都是一致的。
整体来说Kubevela 正在向一款:原生面向混合云环境,以应用为中心的发布流水线一体化平台演进。
### Error: unable to create new content in namespace cert-manager because it is being terminated
你可能偶尔会碰到如下问题。它发生在上一个 KubeVele 版本没有删除完成时。
```
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Failed to install the chart with error: serviceaccounts "cert-manager-cainjector" is forbidden: unable to create new content in namespace cert-manager because it is being terminated
failed to create resource
helm.sh/helm/v3/pkg/kube.(*Client).Update.func1
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/kube/client.go:190
...
Error: failed to create resource: serviceaccounts "cert-manager-cainjector" is forbidden: unable to create new content in namespace cert-manager because it is being terminated
```
稍事休息,然后在几秒内重试。
```
$ vela install
- Installing Vela Core Chart:
Vela system along with OAM runtime already exist.
Automatically discover capabilities successfully ✅ Add(0) Update(0) Delete(8)
TYPE CATEGORY DESCRIPTION
-task workload One-off task to run a piece of code or script to completion
-webservice workload Long-running scalable service with stable endpoint to receive external traffic
-worker workload Long-running scalable backend worker without network endpoint
-autoscale trait Automatically scale the app following certain triggers or metrics
-metrics trait Configure metrics targets to be monitored for the app
-rollout trait Configure canary deployment strategy to release the app
-route trait Configure route policy to the app
-scaler trait Manually scale the app
- Finished successfully.
```
手动应用所有 WorkloadDefinition 和 TraitDefinition manifests 以恢复所有功能。
```
$ kubectl apply -f charts/vela-core/templates/defwithtemplate
traitdefinition.core.oam.dev/autoscale created
traitdefinition.core.oam.dev/scaler created
traitdefinition.core.oam.dev/metrics created
traitdefinition.core.oam.dev/rollout created
traitdefinition.core.oam.dev/route created
workloaddefinition.core.oam.dev/task created
workloaddefinition.core.oam.dev/webservice created
workloaddefinition.core.oam.dev/worker created
$ vela workloads
Automatically discover capabilities successfully ✅ Add(8) Update(0) Delete(0)
TYPE CATEGORY DESCRIPTION
+task workload One-off task to run a piece of code or script to completion
+webservice workload Long-running scalable service with stable endpoint to receive external traffic
+worker workload Long-running scalable backend worker without network endpoint
+autoscale trait Automatically scale the app following certain triggers or metrics
+metrics trait Configure metrics targets to be monitored for the app
+rollout trait Configure canary deployment strategy to release the app
+route trait Configure route policy to the app
+scaler trait Manually scale the app
NAME DESCRIPTION
task One-off task to run a piece of code or script to completion
webservice Long-running scalable service with stable endpoint to receive external traffic
worker Long-running scalable backend worker without network endpoint
```
### Error: ScopeDefinition exists
你可能偶尔会碰到如下问题。它发生在存在一个老的 OAM Kubernetes Runtime 发行版时,或者你之前已经部署过 `ScopeDefinition`
```
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Failed to install the chart with error: ScopeDefinition "healthscopes.core.oam.dev" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "kubevela": current value is "oam"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "vela-system": current value is "oam-system"
rendered manifests contain a resource that already exists. Unable to continue with install
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/action/install.go:274
...
Error: rendered manifests contain a resource that already exists. Unable to continue with install: ScopeDefinition "healthscopes.core.oam.dev" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "kubevela": current value is "oam"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "vela-system": current value is "oam-system"
```
删除 `ScopeDefinition` "healthscopes.core.oam.dev" 然后重试.
```
$ kubectl delete ScopeDefinition "healthscopes.core.oam.dev"
scopedefinition.core.oam.dev "healthscopes.core.oam.dev" deleted
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Successfully installed the chart, status: deployed, last deployed time = 2020-12-03 16:26:41.491426 +0800 CST m=+4.026069452
WARN: handle workload template `containerizedworkloads.core.oam.dev` failed: no template found, you will unable to use this workload capabilityWARN: handle trait template `manualscalertraits.core.oam.dev` failed
: no template found, you will unable to use this trait capabilityAutomatically discover capabilities successfully ✅ Add(8) Update(0) Delete(0)
TYPE CATEGORY DESCRIPTION
+task workload One-off task to run a piece of code or script to completion
+webservice workload Long-running scalable service with stable endpoint to receive external traffic
+worker workload Long-running scalable backend worker without network endpoint
+autoscale trait Automatically scale the app following certain triggers or metrics
+metrics trait Configure metrics targets to be monitored for the app
+rollout trait Configure canary deployment strategy to release the app
+route trait Configure route policy to the app
+scaler trait Manually scale the app
- Finished successfully.
```
### You have reached your pull rate limit
当你查看 Pod kubevela-vela-core 的日志并发现如下问题时。
```
$ kubectl get pod -n vela-system -l app.kubernetes.io/name=vela-core
NAME READY STATUS RESTARTS AGE
kubevela-vela-core-f8b987775-wjg25 0/1 - 0 35m
```
>Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by
>authenticating and upgrading: https://www.docker.com/increase-rate-limit
你可以换成 github 的镜像仓库。
```
$ docker pull ghcr.io/kubevela/kubevela/vela-core:latest
```
### Warning: Namespace cert-manager exists
如果碰到以下问题,则可能存在一个 `cert-manager` 发行版,其 namespace 及 RBAC 相关资源与 KubeVela 存在冲突。
```
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Failed to install the chart with error: Namespace "cert-manager" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
rendered manifests contain a resource that already exists. Unable to continue with install
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/action/install.go:274
...
/opt/hostedtoolcache/go/1.14.12/x64/src/runtime/asm_amd64.s:1373
Error: rendered manifests contain a resource that already exists. Unable to continue with install: Namespace "cert-manager" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
```
尝试如下步骤修复这个问题。
- 删除 `cert-manager` 发行版
- 删除 `cert-manager` namespace
- 重装 KubeVela
```
$ helm delete cert-manager -n cert-manager
release "cert-manager" uninstalled
$ kubectl delete ns cert-manager
namespace "cert-manager" deleted
$ vela install
- Installing Vela Core Chart:
install chart vela-core, version 0.1.0, desc : A Helm chart for Kube Vela core, contains 35 file
Successfully installed the chart, status: deployed, last deployed time = 2020-12-04 10:46:46.782617 +0800 CST m=+4.248889379
Automatically discover capabilities successfully ✅ (no changes)
TYPE CATEGORY DESCRIPTION
task workload One-off task to run a piece of code or script to completion
webservice workload Long-running scalable service with stable endpoint to receive external traffic
worker workload Long-running scalable backend worker without network endpoint
autoscale trait Automatically scale the app following certain triggers or metrics
metrics trait Configure metrics targets to be monitored for the app
rollout trait Configure canary deployment strategy to release the app
route trait Configure route policy to the app
scaler trait Manually scale the app
- Finished successfully.
```
### 如何修复问题MutatingWebhookConfiguration mutating-webhook-configuration exists?
如果你部署的其他服务会安装 MutatingWebhookConfiguration mutating-webhook-configuration则安装 KubeVela 时会碰到如下问题。
```shell
- Installing Vela Core Chart:
install chart vela-core, version v0.2.1, desc : A Helm chart for Kube Vela core, contains 36 file
Failed to install the chart with error: MutatingWebhookConfiguration "mutating-webhook-configuration" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
rendered manifests contain a resource that already exists. Unable to continue with install
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/runner/go/pkg/mod/helm.sh/helm/v3@v3.2.4/pkg/action/install.go:274
github.com/kubevela/kubevela/pkg/commands.InstallOamRuntime
/home/runner/work/kubevela/kubevela/pkg/commands/system.go:259
github.com/kubevela/kubevela/pkg/commands.(*initCmd).run
/home/runner/work/kubevela/kubevela/pkg/commands/system.go:162
github.com/kubevela/kubevela/pkg/commands.NewInstallCommand.func2
/home/runner/work/kubevela/kubevela/pkg/commands/system.go:119
github.com/spf13/cobra.(*Command).execute
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:850
github.com/spf13/cobra.(*Command).ExecuteC
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:958
github.com/spf13/cobra.(*Command).Execute
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:895
main.main
/home/runner/work/kubevela/kubevela/references/cmd/cli/main.go:16
runtime.main
/opt/hostedtoolcache/go/1.14.13/x64/src/runtime/proc.go:203
runtime.goexit
/opt/hostedtoolcache/go/1.14.13/x64/src/runtime/asm_amd64.s:1373
Error: rendered manifests contain a resource that already exists. Unable to continue with install: MutatingWebhookConfiguration "mutating-webhook-configuration" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "kubevela"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "vela-system"
```
要解决这个问题,请从 [KubeVela releases](https://github.com/kubevela/kubevela/releases) 将 KubeVela Cli `vela` 版本升级到 `v0.2.2` 以上。
## 运维
### Autoscale: 如何在多个 Kubernetes 集群上开启 metrics server
运维 Autoscale 依赖 metrics server所以它在许多集群中都是开启的。请通过命令 `kubectl top nodes``kubectl top pods` 检查 metrics server 是否开启。
如果输出如下相似内容,那么 metrics 已经开启。
```shell
$ kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
cn-hongkong.10.0.1.237 288m 7% 5378Mi 78%
cn-hongkong.10.0.1.238 351m 8% 5113Mi 74%
$ kubectl top pods
NAME CPU(cores) MEMORY(bytes)
php-apache-65f444bf84-cjbs5 0m 1Mi
wordpress-55c59ccdd5-lf59d 1m 66Mi
```
或者需要在你的 kubernetes 集群中手动开启 metrics 。
- ACK (Alibaba Cloud Container Service for Kubernetes)
Metrics server 已经开启。
- ASK (Alibaba Cloud Serverless Kubernetes)
Metrics server 已经在如下 [Alibaba Cloud console](https://cs.console.aliyun.com/) `Operations/Add-ons` 部分开启。
![](../../../resources/install-metrics-server-in-ASK.jpg)
如果你有更多问题,请访问 [metrics server 排错指导](https://help.aliyun.com/document_detail/176515.html) 。
- Kind
使用如下命令安装 metrics server或者可以安装 [最新版本](https://github.com/kubernetes-sigs/metrics-server#installation)。
```shell
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
```
并且在通过 `kubectl edit deploy -n kube-system metrics-server` 加载的 yaml 文件中 `.spec.template.spec.containers` 下增加如下部分。
注意:这里只是一个示例,而不是用于生产级别的使用。
```
command:
- /metrics-server
- --kubelet-insecure-tls
```
- MiniKube
使用如下命令开启。
```shell
$ minikube addons enable metrics-server
```
享受在你的应用中 [设置 autoscale](../../extensions/set-autoscale)。

View File

@ -56,7 +56,7 @@ spec:
在实际使用时,用户通过上述 Application 对象来引用预置的组件、运维特征、应用策略、以及工作流节点模块,填写这些模块暴露的用户参数即可完成一次对应用交付的建模。 在实际使用时,用户通过上述 Application 对象来引用预置的组件、运维特征、应用策略、以及工作流节点模块,填写这些模块暴露的用户参数即可完成一次对应用交付的建模。
> 注意:上诉可插拔模块在 OAM 中称为 X-DefinitionsApplication 对象负责引用 X-Definitions 并对用户输入进行校验,而各模块具体的可填写参数则是约束在相应的 X-Definition 文件当中的。具体请参考: [模块定义(X-Definition](./x-definition) 章节。 > 注意:上诉可插拔模块在 OAM 中称为 X-DefinitionsApplication 对象负责引用 X-Definitions 并对用户输入进行校验,而各模块具体的可填写参数则是约束在相应的 X-Definition 文件当中的。具体请参考: [模块定义(Definition](./x-definition) 章节。
## 组件Component ## 组件Component

View File

@ -1,5 +1,5 @@
--- ---
title: 模块定义(X-Definition title: 模块定义Definition
--- ---
KubeVela 是完全可编程的,它可以轻松的根据你的需求实现原地定制和扩展。 KubeVela 是完全可编程的,它可以轻松的根据你的需求实现原地定制和扩展。

View File

@ -6,9 +6,25 @@ title: FAQ
Refer to the [comparison details](https://kubevela.io/docs/#kubevela-vs-other-software). Refer to the [comparison details](https://kubevela.io/docs/#kubevela-vs-other-software).
## You have reached your pull rate limit ## You have reached rate limit for Docker Image Registry
When you look into the logs of Pod kubevela-vela-core and found the issue as below. By default, the community use images from docker registry for installation. You can use the following alternatives:
1. You can use github container registry, check the [list of official images](https://github.com/orgs/kubevela/packages) for more details. Use it like:
```
docker pull ghcr.io/kubevela/kubevela/vela-core:latest
```
2. Alibaba Container Registry also sponsor KubeVela community, you can use `acr.kubevela.net/` as prefix, acr has a sync for each KubeVela official images. Use it like:
```
docker pull acr.kubevela.net/oamdev/vela-core:latest
```
* You can check if the error occurs by:
Check the logs of Pod kubevela-vela-core and found the issue as below.
``` ```
kubectl get pod -n vela-system -l app.kubernetes.io/name=vela-core kubectl get pod -n vela-system -l app.kubernetes.io/name=vela-core
@ -27,4 +43,13 @@ You can use github container registry instead.
docker pull ghcr.io/kubevela/kubevela/vela-core:latest docker pull ghcr.io/kubevela/kubevela/vela-core:latest
``` ```
## Do yo support Crossplane, what's the difference between terraform and corssplane in KubeVela?
KubeVela natively support Crossplane as they're already CRDs, while terraform was not a CRD controller, so the KubeVela community author a [terraform controller](https://github.com/kubevela/terraform-controller) for integration. You can choose any of them as you wish.
### What's the relationship between KubeVela and OAM? What will KubeVela mainly focus?
* OAM(Open Application Model) is the model behind KubeVela, it provides a platform-agnostic application model including the best practices and methodology for different vendors to follow. The evolution of the model depends primarily on the practices of KubeVela currently.
* KubeVela is the control plane running on Kubernetes, it works as a CRD controller and brings OAM model into your Cloud Native PaaS along with lots of addon capabilities. KubeVela will mainly focus on application delivery, the goal is to make deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable.