Files
kuboard-press/install/sealos/index.md
2021-08-25 18:08:47 +08:00

145 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
vssueId: 171
description: Kuboard_快速在Kubernetes上落地微服务_本文详细介绍如何离线安装Kubernetes
meta:
- name: keywords
content: Kubernetes离线安装
---
# 安装Kubernetes集群离线
<AdSenseTitle/>
# 支持的环境
## Linux 发行版, CPU架构
* Debian 9+, x86_64/ arm64
* Ubuntu 16.04, 18.04, 20.04, x86_64/ arm64
* Centos/RHEL 7.6+, x86_64/ arm64
* 其他支持 systemd 的系统环境. x86_64/ arm64
## kubernetes 版本
* 1.16+
* 1.17+
* 1.18+
* 1.19+
* 1.20+
* 1.21+
* 1.22+
更多版本支持, 详细查看[sealyun.com](https://www.sealyun.com)
## 要求和建议
* 最低资源要求
* 2 vCpu
* 4G Ram
* 40G+ 存储
* 操作系统要求
* ssh 可以访问各安装节点
* 各节点主机名不相同并满足kubernetes的主机名要求。
* 各节点时间同步
* 网卡名称如果是不常见的,建议修改成规范的网卡名称, 如(eth.*|en.*|em.*)
* kubernetes1.20+ 使用containerd作为cri. 不需要用户安装docker/containerd. sealos会安装1.3.9版本containerd。
* kubernetes1.19及以下 使用docker作为cri。 也不需要用户安装docker。 sealos会安装1.19.03版本docker
* 网络和 DNS 要求:
* 确保 /etc/resolv.conf 中的 DNS 地址可用。否则可能会导致群集中coredns异常。
* 如果使用阿里云/华为云主机部署。 默认的pod网段会和阿里云的dns网段冲突 建议自定义修改pod网段, 在init的时候指定`--podcidr` 来修改。
* sealos 默认会关闭防火墙, 如果需要打开防火墙, 建议手动放行相关的端口。
* 内核要求:
* cni组件选择cilium时要求内核版本不低于5.4
# 🚀 快速开始
> 环境信息
主机名|IP地址
---|---
master0|192.168.0.2
master1|192.168.0.3
master2|192.168.0.4
node0|192.168.0.5
服务器密码123456
**kubernetes .0版本不建议上生产环境!!!**
> 只需要准备好服务器,在任意一台服务器上执行下面命令即可
```sh
# 下载并安装sealos, sealos是个golang的二进制工具直接下载拷贝到bin目录即可, release页面也可下载
$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
# 安装一个三master的kubernetes集群
$ sealos init --passwd '123456' \
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \
--node 192.168.0.5 \
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
```
> 参数含义
参数名|含义|示例
---|---|---
passwd|服务器密码|123456
master|k8s master节点IP地址| 192.168.0.2
node|k8s node节点IP地址|192.168.0.3
pkg-url|离线资源包地址,支持下载到本地,或者一个远程地址|/root/kube1.22.0.tar.gz
version|[资源包](https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes)对应的版本|v1.22.0
> 增加master
```shell script
🐳 → sealos join --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos join --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 增加node
```shell script
🐳 → sealos join --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 删除指定master节点
```shell script
🐳 → sealos clean --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos clean --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 删除指定node节点
```shell script
🐳 → sealos clean --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos clean --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 清理集群
```shell script
🐳 → sealos clean --all
```
# ✅ 特性
* 支持ARM版本离线包v1.20版本离线包支持containerd集成完全抛弃docker
* 99年证书, 支持集群备份,升级
* 不依赖ansible haproxy keepalived, 一个二进制工具0依赖
* 离线安装不同kubernetes版本下载对应不同版本的[资源包](https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes)即可,离线包包含所有二进制文件配置文件和镜像
* 高可用通过ipvs实现的localLB占用资源少稳定可靠类似kube-proxy的实现
* 几乎可兼容所有支持systemd的x86_64架构的环境
* 轻松实现集群节点的增加/删除
* 上千用户在线上环境使用sealos稳定可靠
* 资源包放在阿里云oss上再也不用担心网速
* dashboard ingress prometheus等APP 同样离线打包,一键安装
[了解一下这是怎么做到的](https://github.com/fanux/sealos)