K8S实战:史上最简单的K8S环境安装
前言本教程基于sealos搭建1.18.0版本的k8s环境,sealos能够做到一条命令实现k8s集群部署,sealos官网:https://www.sealyun.com/sealos特性99年证书不依赖ansible haproxy keepalived, 一个二进制工具,0依赖离线安装,不同kubernetes版本下载对应不同版本的资源包即可,离线包包含所有二进制文件配置文件和镜像高可用通过
前言
本教程基于sealos搭建1.18.0版本的k8s环境,sealos能够做到一条命令实现k8s集群部署,sealos官网:https://www.sealyun.com/
sealos特性
- 99年证书
- 不依赖ansible haproxy keepalived, 一个二进制工具,0依赖
- 离线安装,不同kubernetes版本下载对应不同版本的资源包即可,离线包包含所有二进制文件配置文件和镜像
- 高可用通过ipvs实现的localLB,占用资源少,稳定可靠,类似kube-proxy的实现
- 几乎可兼容所有支持systemd的x86_64架构的环境
- 轻松实现集群节点的增加/删除
- 上千用户在线上环境使用sealos,稳定可靠
- 资源包放在阿里云oss上,再也不用担心网速
- dashboard ingress prometheus等APP 同样离线打包,一键安装
环境准备
服务器
服务器IP | 主机名 | 集群角色 | 作用 |
---|---|---|---|
10.1.12.27 | apiserver.cluster.local | master | |
10.1.12.28 | k8s.master.2 | master | |
10.1.12.29 | k8s.node.3 | node | |
10.1.12.42 | hadoop1 | node | |
10.1.12.43 | hadoop2 | node | sealos服务端,配置好与其他服务器免密登录 |
免密登录配置
sealos需要跨服务器执行命令,因此需要使用ssh进行登录,为了简化部署过程,设置sealos服务器对其他服务器为免密登录,以下是免密登录的具体配置
我有2台服务器(A与B),在A服务器上想要在SSH B时无需输入密码即可登陆
步骤一
客户端生成公私钥(服务器A)
ssh-keygen
//一路回车
上面这个命令会在用户目录.ssh文件夹下创建公私钥,命令执行完成后,到.ssh目录下去查看密钥生成情况:
cd ~/.ssh
看到两个密钥文件:id_rsa (私钥),id_rsa.pub (公钥)
步骤二
上传公钥到服务器(上传到服务器B)
//userb为服务器B的账号,ip为服务器B的ip
ssh-copy-id -i ~/.ssh/id_rsa.pub userb@ip
上面这条命令是写到服务器上的ssh目录下去了,命令执行完成后,到服务器B上去查看情况
cd ~/.ssh
more authorized_keys
可以看到客户端写入到服务器的 id_rsa.pub (公钥)内容。
注意事项
- 必须同步所有服务器时间
- 所有服务器主机名不能重复
- 系统支持:centos7.6以上 ubuntu16.04以上
- 内核推荐4.14以上, 系统推荐:centos7.7
服务器账号准备
K8S需要root账号权限,我们安装也是用root账号
其他账号没有试过,sealos官网貌似也没有说要用root
安装步骤
步骤一:下载并按照sealos
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载(
步骤二:下载k8s的安装包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/7b6af025d4884fdd5cd51a674994359c-1.18.0/kube1.18.0.tar.gz
步骤三:执行集群初始化安装命令
sealos init \
--master 10.1.12.27 \
--node 10.1.12.29 \
--pkg-url /home/user/sealos/kube1.18.0.tar.gz \
--version v1.18.0
pkg-url:指定第二步中下载的k8s安装包路径
version:指定k8s版本
执行日志
安装成功
其他步骤
这个步骤不是必要的,若第三步把所有节点都包含在内,就可以不需要这一步了,后期若果要扩展节点,再执行
扩展主节点
sealos join --master 10.1.12.28
执行日志
扩展node节点
sealos join --node 10.1.12.43 --node 10.1.12.42
执行日志
安装结果确认
执行命令查询5台服务器是否都已经启动
kubectl get nodes
结果
更多推荐
所有评论(0)