Releases: easzlab/kubeasz
kubeasz 3.4.0
kubeasz 3.4.0 (White Dew)
蒹葭苍苍,白露为霜。kubeasz 3.4.0 发布更新支持k8s 1.25 版本。
组件更新
- k8s: v1.25.1
- containerd: 1.6.8
- calico: v3.23.3
- cilium: 1.12.2
- flannel: v0.19.2
- kube-prometheus-stack: 39.11.0
- nodelocaldns: 1.22.8
- dashboard: v2.6.1
- pause: 3.8
其他
kubeasz 3.3.1
kubeasz 3.3.1 (Slight Heat)
倏忽温风至,因循小暑来。竹喧先觉雨,山暗已闻雷。kubeasz 3.3.1 发布,稳定性和新特性更新说明如下。
主要更新
1.新增local insecure registry
为方便集群离线安装,新增本地镜像仓库,用于预存放集群安装所需的组件镜像;建议仅做集群安装时临时使用,不适合对外用作业务应用的镜像存储(harbor 可以作为企业内部镜像仓库应用)。调整ezdown 下载脚本,区分默认组件镜像(ezdown -D
)自动下载和可选组件镜像(ezdown -X
)下载并推送至该本地镜像仓库。
2.新增网络检测工具/插件
集群初始安装后,或者运行很久时,非常需要有个工具能够简单检测当前集群各个节点网络是否正常;受 cilium connectivity-check 启发,利用cronjob 检测集群各种网络访问方式是否正常。详解组件说明
3.更新calico组件支持自动安装calico route reflector
calico 是最流行的网络组件之一;但是当集群节点达到一定数量后,默认的bgp全互联拓扑会导致每个节点需要维护大量BGP邻居信息;本次更新集成了calico-route-reflector自动安装,建议当节点数大于50时必须开启,详见文档说明
4.更新重写cilium组件安装
cilium 可算是最酷的网络组件之一;拥有eBPF光环,以及炫酷的cilium network policy(比k8s原生network policy增强很多),还有可观测性... 后续项目会加大对cilium组件的更新支持。
5.增加github action 自动同步仓库
自动同步kubeasz项目到国内gitee仓库,方便国内网络环境下访问。
组件更新
- k8s: v1.24.2
- coredns: 1.9.3
- pause: 3.7
其他
- 大量安装文档更新
- 修复add-node等添加节点时自动添加
/usr/bin/python
软链接
kubeasz 3.3.0
kubeasz 3.3.0 (Grain in Ear)
泽草所生,种之芒种。kubeasz 3.3.0 发布更新支持k8s 1.24 版本。
主要更新
1.容器运行时
修改默认容器运行时为containerd,kubeasz 3.3.0 暂未适配docker 和其他容器运行时;集群使用containerd作为运行时,确实更简单、稳定;至于docker,镜像打包、单机运行容器等等真好用;各自发挥所长吧;kubeasz项目中在离线资源下载、安装中使用docker非常方便,还可以避免在部署机器上安装ansible等麻烦事,推荐使用。
2.去除安装ingress插件
ingress一般是具体业务强相关的,属于上层组件;鉴于维护人力和频率,项目中仅保留历史相关ingress文档,不再继续更新;请移步相关ingress组件官网获取更新部署方式;kubeasz 今后将更加关注底层集群组件的更新和维护。做简单,做好一件事。
3.更新prometheus安装套件
监控组件属于底层功能,将持续更新;项目使用kube-prometheus-stack helm chart 默认部署,需要自定义设置请参考项目 https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
组件更新
- k8s: v1.24.1
- etcd: v3.5.4
- containerd: 1.6.4
- calico: v3.19.4
- cni-plugins: v1.1.1
- dashboard: v2.5.1
其他
- 调整kube-controller-manager启动配置文件
- 调整kubelet启用配置文件
- 修复部分系统首次执行安装失败 (缺失 '/usr/bin/python')
- 修复'ezdown‘运行可能会遗留容器导致再次运行失败
- 部分文档更新
- fix: get secret tokens for dashboard login in v1.24
kubeasz 3.2.0
kubeasz 3.2.0 (Slight Cold)
小寒料峭, 盼雪迎春。kubeasz 3.2.0 发布更新支持k8s 1.23 版本。
主要更新
- 修改默认容器运行时为containerd,如果需要仍旧使用docker,请对应修改clusters/${集群名}/hosts 配置项
CONTAINER_RUNTIME
- 修改默认network-plugin:calico
- 修复CNCF Conformance Test,选择ipvs模式时sessionAffinity的问题
- 调整containerd配置文件与版本格式一致
- 调整kube-scheduler启动配置文件
- 调整kube-proxy启用配置文件
组件更新
- k8s: v1.23.1
- etcd: v3.5.1
- containerd: 1.5.8
- calico: v3.19.3
- flannel: v0.15.1
- coredns: 1.8.6
- cni-plugins: v1.0.1
- pause: 3.6
- dashboard: v2.4.0
- metrics-server: v0.5.2
- k8s-dns-node-cache: 1.21.1
- nfs-provisioner: v4.0.2
其他
- fix: avoid cleaning iptables rules on docker setup
- fix: controller-manager health check issue #1084
- feat: Add docker proxy config at ezdown
- fix: kubectl drain 参数版本差异导致失败的问题
- fix: prepare阶段的一些小问题
- fix: nf_conntrack模块安装判断等
kubeasz 3.1.1
kubeasz-3.1.1 (Autumnal Equinox)
昼夜均,寒暑平,中秋祭月。kubeasz 3.1.1 小版本更新。
正式通过k8s一致性认证
kubeasz 用户可以确认集群各项功能符合预期,既符合k8s设计标准;
组件更新
- k8s: v1.22.2, v1.21.5, v.1.20.11, v1.19.15
- etcd: v3.5.0
- docker: 20.10.8
- calico: v3.19.2
- coredns: 1.8.4
- pause: 3.5
- dashboard: v2.3.1
- metrics-server: v0.5.0
其他
- 更新:kuboard 文档 #1014 #1023
- 更新:判断服务状态直接使用systemctl is-active #1019
- 修复:etcd dir bug #1036
- 更新:traefik为Daemonset部署,增加健康检测功能以及Node节点亲和性调度 #1028
- 更新:dashboard 部署文件和文档
- 更新:metrics-server 部署文件和文档
- 修复:coredns 1.8.4 rbac settings
- 修复:docker/containerd是否需要安装的判断条件
- 修复:暂时绕过centos7.9开启KUBE_RESERVED的问题
- 调整:docker/containerd运行时安装互不影响
kubeasz 3.1.0
kubeasz 3.1.0 (Grain Rain)
春归谷雨,夏至未至。kubeasz 3.1.0 版本发布,主要更新点:
正式通过k8s一致性认证
kubeasz 用户可以确认集群各项功能符合预期,既符合k8s设计标准;
- v1.20 已完成
推荐群里大佬的k8s架构师免费视频课程
作者花很多心思和精力去构思文档、视频录制,并且把工作中的实践经验分享出来;值得参考学习
重写chrony/ex-lb/kube-lb等组件的安装
原先使用yum/apt方式安装依赖于各操作系统软件源,版本无法统一管理,并且离线安装也不方便;现使用源码最小化依赖编译安装,仅依赖基本库,生成的二进制文件可以运行于受支持的各种操作系统,可以方便的版本管理、配置管理和离线安装。
原node节点haproxy 由仅四层转发的nginx替代(kube-lb),负责集群内部负载均衡apiservers;简化部署逻辑,现在每个节点均会运行一个轻量kube-lb进程。
原ex-lb组件keepalived+haproxy由 keepalived+l4lb替代,l4lb同样是仅支持四层转发的nginx源码编译的。
修改有条件使用systemd
cgroup driver
当容器运行时选择containerd,或者docker version >= 20.10时,容器运行时和kubelet使用systemd
做资源管理和限制,这是官方文档建议的方式,一定程度上能增加稳定性;
当选择docker version < 20.10时,使用cgroupfs
;主要因为部分操作系统不支持dockerd使用cgroup=systemd,会提示报错:OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown
。
组件更新
- k8s: v1.21.0, v1.20.6, v.1.19.10, v1.18.18
- containerd: v1.4.4 (runc: v1.0.0-rc93)
- coredns: 1.8.0
- dns-node-cache: 1.17.0
- pause: 3.4.1
其他
- fix:增加/删除节点时ansible hosts文件更新错误
- fix:kube-scheduler healthz/metrics listening setting
- fix:restart ex-lb when master nodes change
- fix:多条默认路由网卡自动识别问题
- fix:安装aio集群时docker cgroupdriver设置问题
- fix:add scheme:https to service-account-issuer
- fix:容器化aio安装时选择containerd运行时失败
- feat:增加可选配置apiserver安全端口
- feat:允许修改配置ingress port #999
- feat:增加支持ubuntu 20.04
- feat:增加ezctl setup支持传入额外参数 #1007
- 更新ansible.cfg
- 更新get-pip.py下载地址 #1006
kubeasz 3.0.1
kubeasz 3.0.1 (Pure Brightness)
清明降至,踏青郊游,祭祖缅怀。kubeasz 3.0.1 版本发布,主要更新点:
技术上通过k8s一致性认证的所有测试项
kubeasz 用户可以确认集群各项功能符合预期,既符合k8s设计标准;下一步会继续走流程正式申请成为官方认证的部署工具;正式PR在此:cncf/k8s-conformance#1326
推荐群里大佬的k8s架构师免费视频课程
作者花很多心思和精力去构思文档、视频录制,并且把工作中的实践经验分享出来;值得参考学习
https://www.toutiao.com/c/user/token/MS4wLjABAAAA0YFomuMNm87NNysXeUsQdI0Tt3gOgz8WG_0B3MzxsmI/?tab=article
更新harbor 安装流程
重写 harbor 安装流程,利用easzlab/harbor-offline:v2.1.3 仓库加速离线安装文件下载,增加可选安装组件。
组件更新
- k8s: v1.20.5, v.1.19.9, v1.18.17
- docker: 20.10.5
- dashboard: v2.2.0
- harbor: v2.1.3
集群安装
- 修复默认集群内部dns域名后缀
- 调整etcd集群配置参数
- 更新kube-scheduler部署使用配置文件 kube-scheduler-config.yaml
- 更新集群存储插件 nfs-provisioner
- 修复安装外部负载均衡服务 ./ezctl setup ${集群名} ex-lb
- 修复清理LB(haproxy/keepalived)服务可能报错问题
- 修复worker节点安装时无法推送dnscache镜像
kubeasz 3.0.0
kubeasz 3.0.0 (the Beginning of Spring)
2021春快到了,kubeasz带来全新3.x版本,是继2.x基础上做了一些小优化和创新,力求更加整洁和实用。主要更新点:
优化多集群创建、管理逻辑
根目录新增 clusters 子目录,用于存放不同集群的配置;现在 ezctl 命令行天然支持多集群管理操作,统一创建、管理,互不影响;建议deploy节点独立出来,具体集群创建、管理操作可以参考 docs/setup/ezctl.md
配置集中,组件版本统一设置
模版配置文件 example/config.yml 是把原先 roles/xxxx/defaults/main.yml 配置合并后的全局配置文件;每创建一个集群会从这个模版派生一个实例集群的配置文件到 clusters/xxxx/config.yml;
ezdown 脚本统一设置组件、镜像版本;自动替换clusters/xxxx/config.yml 全局配置中相关版本
增加默认部署 node local dns
NodeLocal DNSCache在集群的上运行一个dnsCache daemonset来提高clusterDNS性能和可靠性。在K8S集群上的一些测试表明:相比于纯coredns方案,nodelocaldns + coredns方案能够大幅降低DNS查询timeout的频次,提升服务稳定性
参考官方文档:https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
客户端 kubeconfig 管理【强烈推荐】
经常遇到有人问某个kubeconfig(kubectl)泄露了怎么办?不同权限的kubeconfig怎么生成?这里利用cfssl签发自定义用户证书和k8s灵活的rbac权限绑定机制,ezctl 命令行封装了这个功能,非常方便、实用。
详细使用参考 docs/op/kcfg-adm.md
更新 prometheus安装部署,自动集成安装
参考 example/config.yml 配置和 roles/cluster-addon/templates/prometheus/values.yaml.j2 模版配置文件,详细使用文档待更新
其他主要更新
- 更新支持 ansible 2.10.4
- 更新系统加固 os-harden 7.0.0
- 更新traefik 安装部署(helm charts)
组件更新
- k8s: v1.20.2, v.1.19.7, v1.18.15, v1.17.17
集群安装
- ca 安全管理,所有证书都在deploy节点创建后推送到需要的节点
- 移除 netaddr (pip安装) 依赖
- 修复ansible group命名不规范问题(group 'kube-node' --> group 'kube_node')
- 更新 kube-ovn to 1.5.3 #958
- 调整cluster-addon安装方式
- 修复 calico 网络 backend 设置为 vxlan none 时,calico 部署失败 #959
- 调整默认nodePort范围为30000-32767
- 修复 calico backend config #973
- 修复 restore an etcd cluster #973
- 修复带自定义变量时增加/删除节点可能失败
工具脚本
- ezdown 替换原 tools/easzup
- ezctl 替换原 tools/easzctl
文档
- 大量文档更新(部分未完成)
kubeasz 2.2.4
kubeasz-2.2.4 发布说明
CHANGELOG:
- 组件更新
- k8s: v1.20.2
- kube-ovn: 1.5.3
- 集群安装
- 文档
- KubeSphere guide updated #968
kubeasz 2.2.3
kubeasz-2.2.3 发布说明
CHANGELOG:
- 组件更新
- k8s: v1.20.1, v1.19.6, v1.18.14, v1.17.16
- containerd v1.4.3
- docker: 19.03.14
- calico v3.15.3
- dashboard: v2.1.0
- 集群安装
- 更新支持containerd 1.4.3
- 修改etcd启动参数auto-compaction-mode=periodic #951 by lushenle
- 修改docker默认开启live-restore功能
- 工具脚本
- easzup: 移除下载containerd代码,已合并在镜像easzlab/kubeasz-ext-bin:0.8.1 中
- start-aio: 增加懒人一键下载并启动aio集群脚本 ./start-aio ${kubeasz_version}
- 文档
- 少量文档更新