背景
使用sealos+NFS部署一个带有持久化存储的k8s1.18.17,并在其之上部署kubesphere。
sealos 简介
https://github.com/fanux/sealos
一条命令离线安装kubernetes,超全版本,支持国产化,生产环境中稳如老狗,99年证书,0依赖,去haproxy keepalived,v1.20支持containerd!
NFS 简介
没啥好说的
kubesphere 简介
https://kubesphere.com.cn/
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。
作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等。
总之是kubernetes图形界面就是了。
使用sealos部署k8s1.18.17
准备3个master节点,N个node节点。系统初始化不讲了,时间要同步,/var/lib/docker
建议单独挂盘,主机名记得修改,下面简单介绍下怎么批量修改主机名。
Ansible修改主机名
首先编辑 hosts,将你想要设置的主机名写在ip后面
[m]
172.26.140.151 hostname=k8sm1
172.26.140.145 hostname=k8sm2
172.26.140.216 hostname=k8sm3
[n]
172.26.140.202 hostname=k8sn1
172.26.140.185 hostname=k8sn2
172.26.140.156 hostname=k8sn3
剧本如下
---
- hosts: n
gather_facts: no
tasks:
- name: change name
raw: "echo {
{hostname|quote}} > /etc/hostname"
- name:
shell: hostname {
{hostname|quote}}
运行
ansible-playbook main.yaml
安装k8s
sealos init --passwd '123456' --master 172.26.140.151 --master 172.26.140.145 --master 172.26.140.216 --node 172.26.140.202 --node 172.26.140.185 --user root --pkg-url /root/kube1.18.17.tar.gz --version v1.18.17
过个几分钟就会输出: