@@ -49,7 +49,7 @@ KubeBlocks 是基于 Kubernetes 的原生应用,你可以使用 Helm 来进行
4949
5050## 安装步骤
5151
52- ** 使用 Helm 安装 KubeBlocks**
52+ ** 在线安装 KubeBlocks**
5353
54541 . 创建 CRD 依赖。
5555
@@ -95,6 +95,125 @@ KubeBlocks 是基于 Kubernetes 的原生应用,你可以使用 Helm 来进行
9595
9696:::
9797
98+ ** 离线安装 KubeBlocks**
99+
100+ 在生产环境中,K8S 集群一般是不能连接外网的,只会允许办公环境的电脑通过 VPN 连接 K8S 集群。在线安装方式不可用,需要进行离线安装。
101+ # # 环境准备
102+
103+ < table>
104+ < tr>
105+ < td colspan=" 3" > 1. K8S 集群中有可用的镜像仓库(假定为registry.kb)< /td>
106+ < /tr >
107+ < tr>
108+ < td colspan=" 3" > 2. K8S 的部署节点安装 helm< /td>
109+ < /tr >
110+ < /table>
111+ 总得来说就是将在线的crd , helm-charts,公有云镜像下载下来,然后helm install安装
112+
113+ 1. 下载crd并安装
114+ 1. 办公电脑访问下面地址,会自动下载 crd 文件
115+ ` ` ` bash
116+ https://github.com/apecloud/kubeblocks/releases/download/v0.8.4-beta.11/kubeblocks_crds.yaml
117+ ` ` `
118+ 2. 将文件上传到集群中,并安装 crd
119+ ` ` ` bash
120+ kubectl create -f crds.yaml // 这里假定下载为 crds.yaml
121+ ` ` `
122+
123+ 2. 下载远程 helmchart 文件
124+ ` ` ` bash
125+ helm repo add kubeblocks https://apecloud.github.io/helm-charts
126+
127+ helm repo update
128+
129+ helm fetch kubeblocks/kubeblocks --version 0.8.4-beta.11 // 这里指定了版本为 0.8.4-beta.11
130+ ` ` `
131+ 3. 将仓库的 repo 改成集群可用的仓库,这里假定可用的是 registry.kb
132+ 1. 将下载的 helmchart 包解压,会得到一个 kubeblocks 的文件夹,进入后修改 value.yaml
133+ ` ` ` bash
134+ tar zxvf kubeblocks-0.8.4-beta.11
135+ ` ` `
136+ 2. 改对应的 repo
137+ ` ` ` bash
138+ # # KubeBlocks container image settings
139+ # #
140+ # # @param image.registry KubeBlocks image registry
141+ # # @param image.repository KubeBlocks image repository
142+ # # @param image.pullPolicy KubeBlocks image pull policy
143+ # # @param image.tag KubeBlocks image tag (immutable tags are recommended)
144+ # # @param image.imagePullSecrets KubeBlocks image pull secrets
145+ # # @param image.tools.repository KubeBlocks tools image repository
146+ image:
147+ registry: registry.kb //换成可用的 registry
148+ repository: apecloud/kubeblocks
149+ pullPolicy: IfNotPresent
150+ # Overrides the image tag whose default is the chart appVersion.
151+ tag: " "
152+ imagePullSecrets: []
153+ tools:
154+ repository: apecloud/kubeblocks-tools
155+ datascript:
156+ repository: apecloud/kubeblocks-datascript
157+
158+
159+
160+ # # @param addonChartsImage - addon charts image, used to copy Helm charts to the addon job container.
161+ # # @param addonChartsImage.chartsPath - the helm charts path in the addon charts image.
162+ addonChartsImage:
163+ # if the value of addonChartsImage.registry is not specified using `--set`, it will be set to the value of 'image.registry' by default
164+ registry: " registry.kb" // 换成可用的 registry
165+ repository: apecloud/kubeblocks-charts
166+ pullPolicy: IfNotPresent
167+ tag: " "
168+ chartsPath: /charts
169+ pullSecrets: []
170+ ` ` `
171+ 4. 将需要的远程镜像重新 tag 推到 K8S 的镜像仓库
172+ 1. 基本需要的镜像是下面这几个
173+ ` ` ` bash
174+ infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-datascript:0.8.4-beta.11
175+ infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-tools:0.8.4-beta.11
176+ infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks:0.8.4-beta.11
177+ infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/snapshot-controller:v6.2.1
178+ infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-charts:0.8.4-beta.11
179+ ` ` `
180+ 2. 将他们重新 tag 后推到远端(以kubeblocks:0.8.4-beta.11举例)
181+ ` ` ` bash
182+ docker pull infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks:0.8.4-beta.11
183+ docker tag infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks:0.8.4-beta.11 registry.kb/apecloud/kubeblocks:0.8.4-beta.11
184+ docker push registry.kb/apecloud/kubeblocks:0.8.4-beta.11
185+ ` ` `
186+ 后续有需要的镜像也可以按照上面的方式添加
187+
188+ 5. 可以将部分自动安装的 addon 关闭,只保留需要的
189+
190+ 在kubeblocks/templates/addons 文件夹中,将对应的数据库的配置中的 autoInstall 改成 false(以 apecloud-mysql-addon.yaml举例)
191+ ` ` ` bash
192+ {{- $selectorLabels := include " kubeblocks.selectorLabels" . }}
193+ {{- include " kubeblocks.buildAddonCR" (merge (dict
194+ " kbVersion" " >=0.7.0"
195+ " selectorLabels" $selectorLabels
196+ " name" " apecloud-mysql"
197+ " version" " 0.8.0-beta.8"
198+ " model" " RDBMS"
199+ " provider" " apecloud"
200+ " description" " ApeCloud MySQL is a database that is compatible with MySQL syntax and achieves high availability through the utilization of the RAFT consensus protocol."
201+ " autoInstall" false ) .) -}} // 将原本的 true 改成false
202+ ` ` `
203+ 6. 部署
204+
205+ 将原本的 kubeblocks 文件夹打包上传至集群部署节点
206+ ` ` ` bash
207+ tar czvf kb0.8.4beta11.tgz kubeblocks
208+ helm install kubeblocks kubeblocks/. --create-namespace kb-system
209+ ` ` `
210+ :::note
211+
212+ 中间有问题需要卸载的时候,一定要使用 helm uninstall 的方式,不能使用删除 kb-system 命名空间的方式,因为部分资源不在 kb-system 下,会导致异常。比如设置某些数据库自动安装的开关失效
213+
214+ :::
215+
216+
98217# # 验证 KubeBlocks 安装
99218
100219执行以下命令来检查 KubeBlocks 是否已成功安装。
0 commit comments