K8S Kubeadm 搭建流程

前言 将最近搭建的K8S流程,以及遇到的部分问题,作为笔记进行记录。 部署环境 搭建版本:kubernetes-1.24.4 (HA) 容器运行时:containerd-1.6.8 操作系统:CentOS7 前置条件 1、集群节点计算资源必须是2h-cpu 2g-ram以上的机器,节点内网或公网需要可达。 2、每个机器的hostname,mac地址不能相同,唯一性product_uuid,通过hostname可以访问对应节点,需要配置/etc/hosts文件。 3、kubernates 1.24版本后默认的容器运行时不再使用Docker,改为 Containerd 容器运行时,如果需要使用docker则需要安装cri-dockerd。 4、 HA架构必须存在3个master控制平面节点,架构如下图:(高可用分为堆叠etcd,外部etcd)。 外部etcd 优点:其中失去控制平面实例或者 etcd 成员的影响较小,并且不会像堆叠的 HA
11 min read

关于Serverless架构

Serverless(无服务器架构)成为新的热点,无服务器云函数可以让用户无需关心服务器的部署运营,只需开发最核心的业务逻辑,即可实现上线运营,具备分布容灾能力,可以依据负载自动扩缩容,并按照实际调用次数与时长计费。 Serverless的优点是可以快速,低成本,无运维即可达到业务高可用上线。但也面临着与云厂商强行进行绑定,对于未来是否可以业务迁移到其他云厂商,目前看来还是有一定的成本,在函数FC中,我们会集成入 OSS,RDS,NAS等云厂商的服务,想要直接迁移其他云厂商的还是得去修改部分代码。 Serverless的每个函数都是沙箱环境,可以运行不同的语言,让每个语言发挥自己最擅长的领域,目前阿里云的函数计算服务 FC 每月可以 100w 次函数免费调用执行。这对于部分小微企业来说,是非常不错的选择,毕竟前期自己部署机房或低成本的云服务器都有着一定的开支,而Serverless在前期的按调用次数收费可以节约很大部分的上线部署成本。 但目前 Serverless 有一个冷启动得过程,导致在事件通知或HTTP第一次调用时,延迟将会根据容器启动时间而增加。不过也可以购买预备资源解决
3 min read

K3S 集群搭建

最近学习了K8S集群的部署,期间使用了很多的部署方式,例如官方给出的 kubeadm [https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/] 工具,青云的KK工具一键部署,也有github上开源免费或收费的一键部署工具,都尝试过,但最后选择了K3S-up [https://github.com/alexellis/k3sup] 来进行集群的部署。 相对于K8S来说,K3S系统容器数量少,轻量级,并且默认使用 containerd 作为容器运行时,内部的 ingress 使用的是 go 语言开发的 traefik,集成了SQLite 代替 Etcd,但在多个master节点中最好使用 Etcd 组件,来保证数据一致性,从而可以HA。 本次搭建选用阿里云6台共享性服务器。 3台master(2核4g) 3台worker(2核4g) 并搭建
3 min read

随心笔记

技术无止境 创新不停驻