当前位置: 首页 > 科技观察

资源不够想玩k8s?构建单节点k3s和kubeSphere管理终端

时间:2023-03-18 18:35:30 科技观察

k3sk8s是业界公认的有效管理容器化工作负载的服务平台。对于企业用户来说,部署一套k8s是非常简单的,但是对于我们一些个人用户来说,以学习或者自己动手为目的,搭建一套k8s的成本还是太高了。于是k3s诞生了。K3s是Rancher团队开发的一套k8s替代方案。Rancher当年也是一个优秀的容器编排平台解决方案(不过他的1.X版本的编排系统还是被遗忘了。。。)。k3s从名字就知道肯定是k8s的袖珍版。是的,根据官网的介绍【K3s-轻量级K3s-轻量级Kubernetes|Rancher文档】K3s是一个轻量级的Kubernetes发行版,针对计算、物联网等场景进行了高度优化。K3s具有以下增强功能:打包为单个二进制文件。使用基于sqlite3的轻量级存储后端作为默认存储机制。还支持etcd3、MySQL和PostgreSQL作为存储机制。包装在一个简单的启动器中,通过它可以处理许多复杂的TLS和选项。默认情况下是安全的,对于轻量级环境具有合理的默认值。添加简单但强大的“内置电池”功能,例如:本地存储提供程序、服务负载均衡器、Helm控制器和TraefikIngress控制器。所有Kubernetes控制平面组件的操作都封装在一个二进制文件和进程中,使K3s能够自动化和管理复杂的集群操作,包括证书分发。外部依赖性被最小化,K3s只需要内核和cgroup挂载。K3s包需要的依赖包括:containerdFlannelCoreDNSCNI主机实用程序(iptables、socat等)Ingresscontroller(Traefik)Embeddedserviceloadbalancer(服务负载均衡器)Embeddednetworkpolicycontroller(网络策略控制器)与的最大区别k8s是系统占用空间小,对Arm架构的支持甚至可以部署在树莓派上。很短,特别适合开发和测试环境。k3s架构图KubeSphereKubeShpere集群主页kubeSphere工作负载监控KubeSphere是一套管理k8s集群的可视化工具。最大的特点是安装非常方便。官网提供了All-in-One安装脚本,方便开发者快速搭建单个Nodek8s集群。KubeSphere也是对用户体验和美学有特殊爱好的开发者的福音。k8s的各种配置文件都有可视化的编辑界面。按照官方文档(https://kubesphere.io/zh/docs/installing-on-linux/on-premises/install-kubesphere-and-k3s/)中描述的安装方案部署K3s和KubeSphere,目前遇到卡死在死机的情况下,手动安装。安装单节点k3scurl-sfLhttps://get.k3s.io|INSTALL_K3S_VERSION=v1.21.4+k3s1sh-如果上面语句安装的是v1.21.4稳定版k3s,安装脚本通过环境变量控制脚本的执行参数。详细参数列表可以查看官方安装文档RancherDocs:InstallationOptions(https://rancher.com/docs/k3s/latest/en/installation/install-options/#options-for-installation-with-script)、安装过程因为涉及到访问github.com,所以整个安装时间要看网络情况,我用了30秒。这个过程没有什么大问题。如果脚本输出如下日志Downloadinghashhttps://github.com/k3s-io??/k3s/releases/download/{yourversion}/sha256sum-amd64.txt然后退出,可以尝试访问该地址中的log估计是github.com访问困难导致的,只能多试了。安装完成后,可以使用如下命令查看节点信息,证明安装成功。k3skubectlgetnodeinstallKubeSphere使用官方文档在Kubernetes上最小化安装KubeSphere(https://kubesphere.io/zh/docs/quick-start/minimal-kubesphere-on-k8s/#deployment-kubesphere)这两个脚本可以快速在已建立的k3s集群中部署KubeSpherek3skubectlapply-fhttps://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yamlk3skubectlapply-fhttps://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml上面的脚本部署了v3.2.1版本的KubeSphere,如果要指定版本号,可以替换脚本中的版本号因此。脚本会拉取多个镜像,在这个过程中,可能会因为众所周知的问题而卡住。不能说太详细,只能多试几次才能解决。安装过程中可以查看k3skubectllogs-nkubesphere-system$(kubectlgetpod-nkubesphere-system-lapp=ks-install-ojsonpath='{.items[0].metadata.name}')通过以下脚本-fErrorfromserver(BadRequest):container"installer"inpod"ks-installer-85dcfff87d-2w9f5"iswaitingtostart:tryingandfailedtopullimage例如从上述脚本的返回信息,可以知道当前正在拉取镜像,正在重试。通过以上两个简单的脚本,可以搭建一个单节点的k3s+KubeSphere服务平台,足够个人开发者测试使用,或者体验DevOps。