Skip to content

Commit

Permalink
feat: use k3s for deployment defaultly
Browse files Browse the repository at this point in the history
  • Loading branch information
zexi committed Oct 15, 2024
1 parent 8ce504b commit d8d5aec
Show file tree
Hide file tree
Showing 30 changed files with 335 additions and 138 deletions.
2 changes: 1 addition & 1 deletion docs/development/apisdk/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ $ climc credential-get-aksk
::::

```
$ ocadm cluster rcadmin
$ cat /root/.onecloud_rcadmin
export OS_AUTH_URL=https://10.211.55.9:30500/v3
export OS_USERNAME=sysadmin
export OS_PASSWORD=qNVaPTw9fCCMJ7eJ
Expand Down
4 changes: 2 additions & 2 deletions docs/development/resource_sync/new_resource.md
Original file line number Diff line number Diff line change
Expand Up @@ -731,7 +731,7 @@ func init() {
$ make cmd/climc

# 声明环境变量
$ source <(ocadm cluster rcadmin)
$ source /root/.onecloud_rcadmin

# 执行列出 ElasticSearch 资源命令
$ ./_output/bin/climc --debug elastic-search-list # 由于此时还未同步elastic search资源,返回结果为空
Expand Down Expand Up @@ -818,7 +818,7 @@ $ ARCH=all TAG=v3.8.es REGISTRY=registry.cn-beijing.aliyuncs.com/你的镜像命
# 替换镜像,重启服务
$ kubectl edit deployments. -n onecloud default-region # 替换配置文件中的image为上面打包的镜像
# 声明环境变量
$ source <(ocadm cluster rcadmin)
$ source /root/.onecloud_rcadmin
$ climc cloud-account-sync --force --full-sync 阿里云账号id
# 等待资源同步完成, 查看资源是否同步下来
$ climc elastic-search-list --scope system
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/_parts/_ha-env.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import OcbootEnv from '../_parts/_quickstart-ocboot-env.mdx';
import OcbootEnv from '../_parts/_quickstart-ocboot-k3s-env.mdx';

<OcbootEnv />

Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started/_parts/_quickstart-faq-reset.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
执行下面的步骤进行重装:

1. 执行 `kubeadm reset -f` 删除 kubernetes 集群
1. 参考[卸载文档](../../operations/uninstallation#ocboot)清理环境。

2. 重新运行 ocboot 的 run.py 脚本
2. 重新运行 ocboot 的 run.py 脚本
19 changes: 19 additions & 0 deletions docs/getting-started/_parts/_quickstart-ocboot-buildah-git.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import OcbootClone from '@site/src/components/OcbootK3sClone';

### 安装 git

首先需要确保 git 已经安装,如果没有安装请使用对应的包管理工具安装,可参考文档:[Download git for Linux](https://git-scm.com/download/linux)

### 下载部署工具

部署的工具在 [https://github.com/yunionio/ocboot](https://github.com/yunionio/ocboot),需要把该工具使用 `git clone` 下来:

<OcbootClone />

<!-- ### 安装 buildah -->
<!---->
<!-- 接下来安装 buildah 这个容器工具,使用容器的方式运行部署工具,安装 buildah 的操作如下: -->
<!---->
<!-- ```bash -->
<!-- $ ./scripts/install-buildah.sh -->
<!-- ``` -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import OcbootReleaseDownload from '../_parts/_quickstart-ocboot-release-download.mdx';

<OcbootReleaseDownload />

### 运行部署工具

接下来执行 `ocboot.sh run.py` 部署服务。其中 **host_ip** 为部署节点的 IP 地址,该参数为可选项。如果不指定则选择默认路由出去的那张网卡部署服务。如果你的节点有多张网卡,可以通过指定 **host_ip** 选择对应网卡监听服务。

import OcbootRun from '@site/src/components/OcbootK3sRun';

<OcbootRun productVersion={props.productVersion} />

`./ocboot.sh run.py` 脚本会调用 ansible 部署服务,如果部署过程中遇到问题导致脚本退出,可以重复执行该脚本进行重试。

## 部署完成

```bash
....
# 部署完成后会有如下输出,表示运行成功
# 浏览器打开 https://10.168.26.216 ,该 ip 为之前设置 <host_ip>
# 使用 admin/admin@123 用户密码登录就能访问前端界面
Initialized successfully!
Web page: https://10.168.26.216
User: admin
Password: admin@123
```

然后用浏览器访问 https://10.168.26.216 ,用户名输入 `admin`,密码输入 `admin@123` 就会进入 Cloudpods 的界面。

![登录页](../images/index.png)

#### 使用域名访问环境时,需要修改 api_server 接入端(可选)

`api_server` 配置是整个平台的接入端地址,会影响前端虚拟机 VNC 或者 Web SSH、CloudShell 的连接。一般无法通过 Web SSH 进入虚拟机或者打开 CloudShell,是因为没有正确设置 api_server 配置造成的。

需要参考文档:[修改服务 api_server 入口配置](../../operations/fe/config-ssl-certs#change-api-server-via-climc),根据自己环境的网络情况手动修改。
24 changes: 24 additions & 0 deletions docs/getting-started/_parts/_quickstart-ocboot-k3s-env.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
:::tip 注意事项:

- 操作系统需要是干净的版本,因为部署工具会重头搭建指定版本的 k3s 集群,所以确保系统没有安装 kubernetes, containerd 等容器管理工具,否则会出现冲突导致安装异常。
- 最低配置要求: CPU 8核, 内存 8GiB, 存储 200GiB。
- 虚拟机和服务使用的存储路径都在 **/opt** 目录下,所以理想环境下建议单独给 **/opt** 目录设置挂载点。
- 比如把 /dev/sdb1 单独分区做 ext4 然后通过 /etc/fstab 挂载到 /opt 目录。
:::


根据 CPU 架构不同,支持的发行版也不一样,目前支持的发行版情况如下:

注:3.11、3.10等,表示发行版 Release/3.11、Release/3.10。其余同理。

| Operationg system and Arch | 3.11 | 3.10 |
| -------------------------------------- | ---- | ---- |
| CentOS 7 2009 x86_64+aarch64 |||
| OpenEuler 22.03 LTS Sp3 x86_64+aarch64 |||
| Debian 11 x86_64+aarch64 |||
| Ubuntu 22.04 x86_64+aarch64 |||
| CentOS Stream8 x86_64 |||
| Rocky Linux 8.9 x86_64 |||
| OpencloudOS 8.8 x86_64 |||
| AlmaLinux 8.9 x86_64 |||
| AnolisOS 8.8 x86_64 |||
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### 下载部署工具

部署的工具代码在 [https://github.com/yunionio/ocboot/release](https://github.com/yunionio/ocboot/releases),选择对应的版本,把代码的 tar.gz 包下载下来。

import DownloadOcboot from '@site/src/components/DownloadOcboot';

<DownloadOcboot />
2 changes: 1 addition & 1 deletion docs/getting-started/cmp/quickstart-k8s-helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Cloudpods 相关的组件运行在 Kubernetes 之上,环境以及相关的软
Cloudpods Helm Chart 位于 https://github.com/yunionio/ocboot 仓库,使用以下命令下载到本地:

```bash
$ git clone https://github.com/yunionio/ocboot && cd charts/cloudpods
$ git clone -b release/3.11 https://github.com/yunionio/ocboot && cd charts/cloudpods
```

:::tip 注意
Expand Down
9 changes: 5 additions & 4 deletions docs/getting-started/onpremise/baremetal.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ baremetal-agent 通过 PXE 的方式管理物理机,如果物理机的 BMC 支
登陆控制节点,选择一个 node 启用 baremetal-agent(这里可以选择第一个 master 节点)。

- $node_name: 为使用 `kubectl get nodes` 显示的节点名称,选择一个 node 来运行 baremetal-agent 服务。
- $listen_interface: 指的是 baremetal-agent 服务监听的网卡名称,即 baremetal-agent 所在节点 ip 所在的网卡名称。

```bash
# 假设想把 baremetal-agent 部署到 ip 为 10.168.222.150 的节点上
Expand All @@ -40,8 +39,9 @@ $ ip a show |grep 10.168.222.150
inet 10.168.222.150/24 brd 10.168.222.255 scope global br0

# 启用 baremetal-agent
# ocadm baremetal enable --node $node_name --listen-interface $listen_interface
$ ocadm baremetal enable --node k8s-dev2 --listen-interface br0
# kubectl label nodes $node_name onecloud.yunion.io/baremetal=enable
$ kubectl label nodes k8s-dev2 onecloud.yunion.io/baremetal=enable

# 观察 baremetal agent pod 状态查看是否启动成功
$ watch "kubectl get pods -n onecloud | grep baremetal"
default-baremetal-agent-7c84996c9b-hhllw 1/1 Running 0 3m10s
Expand Down Expand Up @@ -104,5 +104,6 @@ $ kubectl delete pods -n onecloud default-host-xdc7x
可以在启用 baremetal-agent 的节点中选择节点禁止 baremetal-agent 调度到该节点。
```bash
ocadm baremetal disable --node $node_name
# 删掉对应节点上的 onecloud.yunion.io/baremetal 标签
$ kubectl label nodes $node_name onecloud.yunion.io/baremetal-
```
1 change: 1 addition & 0 deletions docs/getting-started/onpremise/buildah-k3s.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
edition: ce
sidebar_position: 6
draft: true
---
# Ocboot k3s 快速安装

Expand Down
16 changes: 3 additions & 13 deletions docs/getting-started/onpremise/ha-ce.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ import HAEnv from '../_parts/_ha-env.mdx';

## 开始安装

### 下载 ocboot
import OcbootReleaseDownload from '../_parts/_quickstart-ocboot-release-download.mdx';

import OcbootClone from '@site/src/components/OcbootClone';

<OcbootClone />
<OcbootReleaseDownload />

### 编写部署配置

Expand All @@ -30,17 +28,9 @@ import OcbootConfigHA from '@site/src/components/OcbootConfigHA';
### 开始部署

```bash
$ ./ocboot.py install ./config-k8s-ha.yml
$ ./ocboot.sh install ./config-ha.yml
```

等待部署完成后,就可以使用浏览器访问 https://10.127.190.10 (VIP), 输入用户名 `admin` 和密码 `admin@123`,进入前端。

另外部署完成后,可以给已有集群添加节点,参考文档:[添加计算节点](./host),注意这里添加节点的控制节点 ip 不要用 vip ,只能用第1个控制节点的实际 ip ,因为 vip 有可能漂移到其他节点上,但通常只有第1个节点配置了 ssh 免密登陆登陆其他节点的权限,用其他控制节点会导致 ssh 登陆不上。

## 常见问题

### 1. 如何手动重新添加控制控制节点?

import HAFAQReadd from '../_parts/_ha-faq-readd.mdx';

<HAFAQReadd />
8 changes: 4 additions & 4 deletions docs/getting-started/onpremise/host.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ edition: ce
- 网络:
- 当前可用的网段: 虚拟机可以直接使用和计算节点所在的扁平网段,需要预先划分保留对应端给云平台虚拟机使用,防止被其它设备占用,最后 IP 冲突

import OcbootEnv from '../_parts/_quickstart-ocboot-env.mdx';
import OcbootEnv from '../_parts/_quickstart-ocboot-k3s-env.mdx';

<OcbootEnv />

Expand All @@ -35,7 +35,7 @@ import OcbootEnv from '../_parts/_quickstart-ocboot-env.mdx';

## 使用 ocboot 添加对应节点

以下操作在控制节点进行,在控制节点使用 `ocboot.py add-node` 命令把对应计算节点添加进来。
以下操作在控制节点进行,在控制节点使用 `ocboot.sh add-node` 命令把对应计算节点添加进来。

假设要给控制节点 10.168.26.216 添加计算节点 10.168.222.140 首先需要 ssh root 免密码登录对应的计算节点以及控制节点自身。

Expand Down Expand Up @@ -66,10 +66,10 @@ $ ssh [email protected] "hostname"
$ cd /root/ocboot

# 使用 ocboot 添加节点
$ ./ocboot.py add-node 10.168.26.216 10.168.222.140
$ ./ocboot.sh add-node 10.168.26.216 10.168.222.140

# 其他选项,使用 '--help' 参考帮助
$ ./ocboot.py add-node --help
$ ./ocboot.sh add-node --help
usage: ocboot.py add-node [-h] [--user SSH_USER] [--key-file SSH_PRIVATE_FILE] [--port SSH_PORT] [--node-port SSH_NODE_PORT]
FIRST_MASTER_HOST TARGET_NODE_HOSTS [TARGET_NODE_HOSTS ...]

Expand Down
10 changes: 4 additions & 6 deletions docs/getting-started/onpremise/lbagent.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,14 @@ Lbagent内部署了如下软件,实现高可用的4层和7层负载均衡功

采用ocboot,采用如下命令将地址为\<ip_of_lbagent_node\>的经典网络虚拟机或物理机部署为一台lbagent:

下载 ocboot 代码:
import OcbootReleaseDownload from '../_parts/_quickstart-ocboot-release-download.mdx';

import OcbootClone from '@site/src/components/OcbootClone';

<OcbootClone />
<OcbootReleaseDownload />

部署 Lbagent 节点:

```bash
$ ./ocboot.py add-lbagent <ip_of_master_node> <ip_of_lbagent_node>
$ ./ocboot.sh add-lbagent <ip_of_master_node> <ip_of_lbagent_node>
```

部署成功的lbagent节点是k8s集群的一个节点,并且带有如下label:
Expand All @@ -52,7 +50,7 @@ onecloud.yunion.io/lbagent=enable
注意:3.10(含)之后,负载均衡节点部署后并不会自动关联负载均衡集群,需要手动关联,关联之后节点上的负载均衡组件才会开始正常工作。可以在web控制台关联,或通过如下climc命令关联:

```bash
climc lbagent-join-cluster --cluster-id CLUSTER_ID AGENT_ID
$ climc lbagent-join-cluster --cluster-id CLUSTER_ID AGENT_ID
```

### 3.9(含)之前版本部署Lbagent
Expand Down
14 changes: 2 additions & 12 deletions docs/getting-started/onpremise/quickstart-virt.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,17 @@ edition: ce

:::tip 注意
- 本章内容是通过部署工具快速搭建 Cloudpods 服务,如果想在生产环境部署高可用集群请参考: [高可用安装](./ha-ce)

- 如果使用 Ubuntu 发行版,建议使用 [Ocboot k3s 快速安装](./buildah-k3s) 的方案,因为 Ubuntu 的其他网络组件以及内核和目前低版本的 K8s 部署方案适配的不好,会出现首次部署容器网络访问不通等问题。
:::

## 环境准备

### 机器配置要求

import OcbootEnv from '../_parts/_quickstart-ocboot-env.mdx';
import OcbootEnv from '../_parts/_quickstart-ocboot-k3s-env.mdx';

<OcbootEnv />

## 安装 ansible 和 git

import OcbootAnsible from '../_parts/_quickstart-ocboot-ansible.mdx';

<OcbootAnsible />

## 安装 Cloudpods

import OcbootInstallCloudpods from '../_parts/_quickstart-ocboot-install-cloudpods.mdx';
import OcbootInstallCloudpods from '../_parts/_quickstart-ocboot-install-cloudpods-k3s.mdx';

<OcbootInstallCloudpods productVersion="virt" />

Expand Down
10 changes: 5 additions & 5 deletions docs/guides/climc/auth.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ climc 请求云平台后端服务的流程如下:

```bash
# 获取环境变量
$ ocadm cluster rcadmin
$ cat /root/.onecloud_rcadmin
export OS_AUTH_URL=https://192.168.0.246:5000/v3
export OS_USERNAME=sysadmin
export OS_PASSWORD=3hV3***84srk
Expand All @@ -46,20 +46,20 @@ export OS_REGION_NAME=region0
export OS_ENDPOINT_TYPE=publicURL

# 认证环境变量
$ source <(ocadm cluster rcadmin)
$ source /root/.onecloud_rcadmin
```
注意: 如果执行 climc 时出现 *Error: Missing OS_AUTH_URL* 的错误提示时,请重新执行 `source <(ocadm cluster rcadmin)` 命令。
注意: 如果执行 climc 时出现 *Error: Missing OS_AUTH_URL* 的错误提示时,请重新执行 `source /root/.onecloud_rcadmin` 命令。

### 非控制节点认证配置

在非控制节点做认证配置上首先需要在对应的控制节点上执行`ocadm cluster rcadmin`
在非控制节点做认证配置上首先需要在对应的控制节点上执行: `cat /root/.onecloud_rcadmin`
将输出的认证信息保存到本地的文件中,通过source命令认证配置。

以下为用户名/密码认证的配置文件模板,通过OS_USERNAME, OS_DOMAIN_NAME, OS_PASSWORD, OS_PROJECT_NAME, OS_PROJECT_DOMAIN等字段指定用户的信息和项目的信息。

```bash
# 在控制节点上获取认证所需要的配置信息。
$ ocadm cluster rcadmin
$ cat /root/.onecloud_rcadmin
export OS_AUTH_URL=https://192.168.0.246:5000/v3
export OS_USERNAME=sysadmin
export OS_PASSWORD=3hV3***84srk
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/cmp/cloudaccounts/cloudaccount.md
Original file line number Diff line number Diff line change
Expand Up @@ -1536,7 +1536,7 @@ $ kubectl rollout restart deployment -n kube-system coredns
2. 选择云平台为Cloudpods,单击 **_"下一步:配置云账号"_** 按钮,进入配置云账号页面。
3. 配置以下参数:
- 名称:Cloudpods云账号的名称。
- 认证地址:即对应的keystone服务地址,可在Cloudpods控制节点通过`ocadm cluster rcadmin`命令获取OS_AUTH_URL。一般为http://域名(IP地址):30500/v3。
- 认证地址:即对应的keystone服务地址,可在Cloudpods控制节点通过`cat /root/.onecloud_rcadmin`命令获取OS_AUTH_URL。一般为http://域名(IP地址):30500/v3。
- 密钥ID/密码:通过Access Key验证方式对接Cloudpods,获取方式请参考[Cloudpods相关参数获取方式](#cloudpods相关参数获取方式)
- 域:选择云账号所属的域。当云账号私有状态下,域下所有项目用户都可以使用云账号创建资源。
- 资源归属方式:默认指定项目,还支持根据云上项目归属。
Expand Down
Loading

0 comments on commit d8d5aec

Please sign in to comment.