Skip to content

Commit 522dbeb

Browse files
docs: Update docs
Signed-off-by: yangchuansheng <[email protected]>
1 parent 0ee9941 commit 522dbeb

File tree

186 files changed

+6656
-46
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+6656
-46
lines changed

content/docs/advanced/architecture.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,4 @@ The Container-shim layer provides automated maintenance:
4747
- Automatically cleans up redundant data
4848
- Optimizes image size and layer count for optimal system performance
4949

50-
![](./images/shim_arch.png)
50+
![](./images/shim_arch.png)

content/docs/advanced/architecture.zh-cn.mdx

+31-28
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,53 @@
11
---
2-
title: Architecture
2+
title: Devbox 架构
33
---
44

5-
Sealos Devbox is an advanced development environment solution that leverages cloud-native Container and Kubernetes technologies to offer a unified and flexible development Runtime. Its key feature is simulating a traditional virtual machine experience while maintaining containerization benefits.
5+
Sealos Devbox 是一种先进的开发环境解决方案,它利用云原生容器和 Kubernetes 技术提供统一且灵活的开发运行时。其核心特点是在保持容器化优势的同时,模拟传统虚拟机体验。
66

7-
## Architecture
7+
## 架构
88

9-
Sealos Devbox is built on a layered architecture, comprising these key components:
9+
Sealos Devbox 基于分层架构设计,包含以下关键组件:
1010

11-
![](./images/architecture.zh-cn.png)
11+
![](./images/architecture.png)
1212

1313

14-
## Control Flow
14+
## 控制流程
1515

16-
Devbox implements a decoupled front-end and back-end design:
16+
Devbox 实现了前后端解耦设计:
1717

18-
1. Users trigger actions via the web interface or plugins
19-
2. Devbox Controller receives and processes these requests
20-
3. Controller translates the processed instructions into Kubernetes API calls
21-
4. Kubernetes executes the corresponding Container operations
18+
1. 用户通过网页界面或插件触发操作
19+
2. Devbox 控制器接收并处理这些请求
20+
3. 控制器将处理后的指令转换为 Kubernetes API 调用
21+
4. Kubernetes 执行相应的容器操作
2222

23-
![](./images/controller_flow.zh-cn.png)
23+
![](./images/controller_flow.png)
2424

2525

26+
## 状态持久化机制
2627

27-
## State Persistence Mechanism
28+
Devbox 采用智能状态保存系统,确保用户环境的一致性:
2829

29-
Devbox employs an intelligent state preservation system to maintain user environment consistency:
30+
### 自动保存
3031

31-
### Automatic Saving
32+
- 系统在特定条件下自动保存用户环境变更
33+
- 变更被打包为镜像层
34+
- 新的镜像层作为提交附加到基础镜像上
35+
- 更新后的镜像安全地存储在隔离的内部镜像仓库中
3236

33-
- System auto-saves user environment changes under specific conditions
34-
- Changes are packaged as image layers
35-
- New layers are appended to the base image as commits
36-
- Updated images are securely stored in an isolated internal registry
37+
### 环境恢复
3738

38-
### Environment Recovery
39+
- 在后续启动时,系统从最新镜像启动
40+
- 确保完整保留历史变更
3941

40-
- On subsequent startups, system boots from the most recent image
41-
- Ensures full preservation of historical changes
42+
### 优化
43+
44+
Container-shim 层提供自动化维护:
45+
46+
- 定期合并镜像层以优化存储
47+
- 自动清理冗余数据
48+
- 优化镜像大小和层数,实现系统最佳性能
49+
50+
![](./images/shim_arch.png)
4251

43-
### Optimization
4452

45-
The Container-shim layer provides automated maintenance:
46-
- Regularly merges image layers to optimize storage
47-
- Automatically cleans up redundant data
48-
- Optimizes image size and layer count for optimal system performance
4953

50-
![](./images/shim_arch.zh-cn.png)

content/docs/k8s/QA.mdx

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "常见问题"
3+
keywords: [Sealos, 镜像构建, Kubernetes运行时, 版本兼容性, 文件目录位置]
4+
description: 了解Sealos常见问题及解决方案,包括镜像构建、Kubernetes运行时选择、版本兼容性和文件目录位置调整。
5+
---

content/docs/k8s/QA.zh-cn.mdx

+224
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
---
2+
title: "常见问题"
3+
keywords: [Sealos, 镜像构建, Kubernetes运行时, 版本兼容性, 文件目录位置]
4+
description: 了解Sealos常见问题及解决方案,包括镜像构建、Kubernetes运行时选择、版本兼容性和文件目录位置调整。
5+
---
6+
7+
使用 Sealos 时,您可能会遇到一些问题。以下是一些常见问题的答案和解决方法。
8+
9+
## 镜像构建问题
10+
11+
### Q1:在构建阶段如何设置代理服务?
12+
13+
在执行构建命令时,可以通过设置 HTTP_PROXY 环境变量来配置代理服务。
14+
15+
```shell
16+
HTTP_PROXY=socket5://127.0.0.1:7890 sealos build xxxxx
17+
```
18+
19+
### Q2:如何启用 buildah 的调试日志?
20+
21+
若需要查看 buildah 的调试日志,可以通过设定 `BUILDAH_LOG_LEVEL` 环境变量实现。
22+
23+
```shell
24+
BUILDAH_LOG_LEVEL=debug sealos images
25+
```
26+
27+
### Q3:如何在 Pod 中执行 Sealos 构建?
28+
29+
若在 Pod 中执行 Sealos 构建,请按以下步骤操作:
30+
31+
1. 在 Pod 中构建镜像,可用以下 YAML 配置创建 Deployment。
32+
33+
```yaml
34+
apiVersion: apps/v1
35+
kind: Deployment
36+
metadata:
37+
labels:
38+
app: sealoscli
39+
name: sealoscli
40+
spec:
41+
replicas: 1
42+
selector:
43+
matchLabels:
44+
app: sealoscli
45+
strategy: {}
46+
template:
47+
metadata:
48+
labels:
49+
app: sealoscli
50+
spec:
51+
containers:
52+
- image: #用你的sealos镜像替换
53+
name: sealoscli
54+
stdin: true
55+
stdinOnce: true
56+
securityContext:
57+
privileged: true
58+
```
59+
60+
2. 创建 Dockerfile。以下是一个例子,根据需要进行修改。
61+
62+
```dockerfile
63+
FROM bitnami/minideb:buster
64+
65+
ARG TARGETOS
66+
ARG TARGETARCH
67+
68+
LABEL from=bitnami/minideb:buster platform=rootcloud team=oam tag=buster name=base
69+
70+
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && sed -i "s@http://security.debian.org@http://mirrors.aliyun.com/debian-security@g" /etc/apt/sources.list
71+
RUN install_packages curl iputils-ping net-tools telnet procps vim wget jq
72+
73+
ENV LANG=C.UTF-8
74+
ENV LANGUAGE=C.UTF-8
75+
ENV LC_ALL=C.UTF-8
76+
ENV TZ=Asia/Shanghai
77+
```
78+
79+
3. 在 Pod 中执行构建命令。
80+
81+
```shell
82+
sealos build --arch arm64 --build-arg TARGETOS=linux --build-arg TARGETARCH=arm64 -t test -f Dockerfile .
83+
```
84+
85+
### Q4:如何使用其他构建工具构建集群镜像?
86+
87+
如果您想使用 Docker 或 Podman 等其他容器工具来构建集群镜像,您可以借助 [sreg](https://github.com/labring/sreg) 来缓存镜像。
88+
89+
以下是操作步骤:
90+
91+
1. 安装 sreg:
92+
```shell
93+
wget https://github.com/labring/sreg/releases/download/v0.1.1/sreg_0.1.1_linux_amd64.tar.gz
94+
tar -xzf sreg_0.1.1_linux_amd64.tar.gz sreg
95+
mv sreg /usr/bin/
96+
```
97+
2. 缓存镜像:
98+
```shell
99+
sreg save --registry-dir=registry .
100+
```
101+
3. 构建集群镜像:
102+
```shell
103+
docker build -t xxxx -f Sealfile .
104+
```
105+
106+
### Q5:执行 Sealos 构建时遇到“lgetxattr /var/lib/containers/storage/overlay/0c2afe770ec7870ad4639f18a1b50b3a84718f95c8907f3d54e14dbf0a01d50d/merged/dev/ptmx:no such device”错误?
107+
108+
这个问题可能与 `fuse-overlayfs` 的版本有关。建议您从[这里](https://github.com/containers/fuse-overlayfs/releases)下载最新版本下载并替换 `/bin/fuse-overlayfs`
109+
110+
## 运行时选择问题
111+
112+
### Q1:如何选择 Kubernetes 运行时?
113+
114+
Sealos 会根据您选择的镜像决定使用哪种运行时。如果选择了 kubernetes-docker 镜像,Sealos 将使用 Docker 作为运行时;如果选择了 kubernetes-crio 镜像,Sealos 将使用 CRI-O 作为运行时。
115+
116+
## 版本兼容性问题
117+
118+
### Q1:报错:"Applied to cluster error:failed to init exec auth.sh failed exit status 127"?
119+
120+
此问题常因您使用的 sealos 版本和镜像版本不匹配造成。请确认您的镜像版本和 sealos 的版本是匹配的。
121+
例如,若您正使用形如 kubernetes:v1.xx.x 的版本,可能需要升级 sealos,特别是在使用较老版本的 sealos,而 sealos 集群镜像则使用了最新版时。
122+
另一种解决方法是选择对应版本的 sealos 镜像。比如,如果您的 sealos 版本是 4.1.3,那么集群镜像应选择形如 kuberntes:v1.24.0-4.1.3 的版本。
123+
确保镜像版本和 sealos 版本的匹配,可以帮助避免此类问题。
124+
125+
### Q2:如果您在集群中新增了其他域名,或者修改了 service 的 CIDR,并且在添加 master 时出现了错误
126+
127+
为了解决这个问题,Sealos 团队在 4.2.0 版本进行了相应的修复。具体的修复内容和讨论可以在这个 pull request 中查看:https://github.com/labring/sealos/pull/2943。
128+
129+
所以,如果您遇到了这个问题,我们建议您升级到 Sealos 4.2.0 版本。更新后的版本应该能够正确处理这些变更,并且在添加 master 时不会出现错误。
130+
131+
## 文件和目录位置问题
132+
133+
### Q1:如何修改 `/root/.sealos` 默认目录的存储位置?
134+
135+
若需修改默认的存储位置,可以设置 SEALOS_RUNTIME_ROOT 环境变量,然后运行 sealos 命令。建议您将这个环境变量设置为全局的,这样在其他命令或场景中也可以方便使用。
136+
137+
```shell
138+
export SEALOS_RUNTIME_ROOT=/data/.sealos
139+
sealos run labring/kubernetes:v1.24.0
140+
```
141+
142+
### Q2:如何修改 `/var/lib/sealos` 默认目录的存储位置?
143+
144+
若需修改默认的存储位置,可以设置 SEALOS_DATA_ROOT 环境变量,然后运行 sealos 命令。同样,建议您将这个环境变量设置为全局的。
145+
146+
```shell
147+
export SEALOS_DATA_ROOT=/data/sealos
148+
sealos run labring/kubernetes:v1.24.0
149+
```
150+
151+
### Q3:如何修改 Sealos 镜像数据和状态的存储路径?
152+
153+
> 在使用 Sealos 集群时,可能需要改变默认的镜像数据存储路径和状态数据的存储路径。默认情况下,这些数据被存储在 `/etc/containers/storage.conf` 文件定义的位置。
154+
155+
1. **查看当前存储配置**
156+
首先,我们可以使用下面的命令来查看当前的镜像存储配置:
157+
```
158+
sealos images --debug
159+
```
160+
这个命令会打印出包含当前存储配置的文件,例如:
161+
```
162+
2023-06-07T16:27:02 debug using file /etc/containers/storage.conf as container storage config
163+
REPOSITORY TAG IMAGE ID CREATED SIZE
164+
```
165+
2. **修改镜像数据存储路径**
166+
如果你希望更改镜像数据的存储路径,你可以编辑 `/etc/containers/storage.conf` 文件。在这个文件中,找到并修改 `graphroot` 字段设置为新的路径。例如:
167+
```
168+
vim /etc/containers/storage.conf
169+
```
170+
在编辑器中,将 `graphroot` 字段的值修改为你希望的新路径。
171+
3. **修改状态数据存储路径**
172+
参考 Buildah 的设计,Sealos 同样提供了状态数据存储路径的设置。在同样的配置文件 `/etc/containers/storage.conf` 中,找到并修改 `runroot` 字段为新的路径。
173+
174+
通过以上步骤,你可以将 Sealos 集群的镜像数据和状态数据保存到新的地址。每次运行 Sealos 命令时,它都将使用你在 `graphroot``runroot` 中设置的新路径来分别存储镜像数据和状态数据。
175+
176+
### Q4:ssh 传输文件时,如何禁止检查文件的 md5?
177+
178+
在网络环境良好时,禁用 md5 检查可以极大提升传输速度。若不想在 ssh 传输文件时检查文件的 md5,可将 SEALOS_SCP_CHECKSUM 环境变量设置为 false 以禁用此功能。建议将此环境变量设为全局,以便在多场景下使用。
179+
180+
```shell
181+
export SEALOS_SCP_CHECKSUM=false
182+
sealos run labring/kubernetes:v1.24.0
183+
```
184+
185+
186+
## 其他问题
187+
188+
### Q1:image-cri-shim 导致端口大量占用,耗尽服务器 socket 资源?
189+
190+
出现此问题时,可通过以下命令解决:
191+
192+
```shell
193+
wget https://github.com/labring/sealos/releases/download/v4.2.0/sealos_4.2.0_linux_amd64.tar.gz && tar xvf sealos_4.2.0_linux_amd64.tar.gz image-cri-shim
194+
sealos exec -r master,node "systemctl stop image-cri-shim"
195+
sealos scp "./image-cri-shim" "/usr/bin/image-cri-shim"
196+
sealos exec -r master,node "systemctl start image-cri-shim"
197+
sealos exec -r master,node "image-cri-shim -v"
198+
```
199+
200+
### Q2:报错 "[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists"
201+
202+
此问题可通过升级至 Sealos 4.1.7+来解决。
203+
204+
### Q3:报错:"function" semverCompare "not defined"
205+
206+
此问题可通过升级至 Sealos 4.1.4+来解决。
207+
208+
我们希望这些解答能帮助您解决在使用 Sealos 过程中遇到的问题。如果还有其他问题,欢迎随时提问。
209+
210+
## 使用技巧
211+
212+
### Q1:如何清理 Sealos 集群的缓存文件
213+
214+
> 在使用 Sealos 集群时,安装过程中可能会在本地存储一些缓存文件,这些文件会重复占用磁盘空间。那么,如何清理这些缓存文件以释放磁盘空间呢?
215+
216+
我们提供了一个非常简单的解决方案,只需要执行以下命令:
217+
218+
```shell
219+
sealos unmount --all && sealos rm --all
220+
```
221+
这个命令的作用是移除所有缓存的 Sealos 集群镜像文件,以及所有的相关挂载点。--all 选项表示处理所有相关文件和挂载点。
222+
执行这个命令后,所有 Sealos 集群的缓存文件就会被清理掉,从而释放出被它们占用的磁盘空间。
223+
这是一个非常有用的技巧,特别是对于在磁盘空间有限的环境中运行 Sealos 集群的用户来说。在你感觉磁盘空间被占用过多时,不妨尝试执行这个命令来释放一些空间。
224+
请注意,这个命令只会删除缓存文件,不会影响已经运行的集群。也就是说,执行这个命令后,你的集群仍然可以正常运行。
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "镜像构建改进指南"
3+
keywords: [Sealos镜像构建, 镜像缓存, registry-proxy, skopeo copy, 镜像仓库同步]
4+
description: 了解Sealos镜像构建的改进指南,提升构建效率,使用registry-proxy和skopeo copy实现镜像仓库同步,优化镜像管理。
5+
---

0 commit comments

Comments
 (0)