今年 9 月份我们迎来了 Kubernetes 1.4 的惊喜发布,一大波新功能让人眼花缭乱。经过将近三个月时间的打磨,如今 Kubernetes 再推出新版本,翘首以盼的 Kubernetes 1.5 重磅发布,本次版本更新涵盖了4 个主题、 12 个新特性以及 4 个原有基础上的重大变更。期待不如眼疾手快,翻阅文章内容,享受一场 Kubernetes 1.5 的饕餮大餐吧~
1 、 StatefulSets (原名 PetSets)
2 、改善联邦支持
3 、简化集群部署
4 、节点鲁棒性及可扩展性
1 、 API 机制
2 、应用
3 、认证
4 、 AWS
5 、集群生命周期
6 、集群运维
7 、联邦
8 、网络
9 、节点
10 、调度
11 、 UI
12 、 Windows
已知问题
1 、节点控制器不再强行删除来源于 apiServer 的 pods
对于有状态的应用 StatefulSet(原名为 PetSet)而言,这个改动意味着创建替换的 Pods 被阻塞,直到旧的 Pods 确定不再运行(意味着 kubelet 从分区返回, Node 对象的删除,云服务商里实例的删除,或强行删除 api-Server 里的 Pod)。这里通过确保不可达的 Pod 不会被认为已经死亡来防止集群应用出现“脑裂”的状况,除非一些“包围”操作提供了上述之一的情况。
对于其他现有的除 StatefulSet 外的控制器,这对于控制器替换 Pods 没有影响,因为控制器不会重用 Pods 名称(他们使用 generate-name)
用户编写的控制器会重用 Pod 对象的名称,应该考虑这个变化。
当使用 kubectl delete ... --grace-period=0 删除一个对象时,客户端将开始进行优雅的删除并等待,直到资源完全被删除。要立即强制删除,使用--force 标志。这可以防止用户不小心让两个 Stateful Set 共享可能导致数据损坏的相同的持久存储。
2 、允许匿名 API 服务器的访问,通过授权组系统设置认证的用户
3 、即使路径是用于类型的有效字段,如果路径在 json 文件下不提供字段, kubectl get -o jsonpath=... 将抛出一个错误。这个改变从 pre-1.5 版本开始,即使他们目前不在 json 文件下,也会返回一些字段的默认值。
4 、对于 VolumeMounts 的 strategicmerge patchMergeKey 是由“名称”到“ mountPath ”的改变。这是必要的,因为名称字段引用 Volume 的名称,并且不是 VolumeMount 的唯一键。如果安装多个相同的 volume ,多个 VolumeMounts 将有同样的 Volume 名称。“ mountPath ”是独一无二的,并可以作为 mergekey 。
1 、升级前重要的安全相关改变
必须在 kube-apiserver 设置--anonymous-auth=false 参数,除非你是一个测试该功能的开发者并且了解它。如果不这样,你会允许未经授权的用户访问你的 apiserver 。
必须在联邦 apiserver 设置--anonymous-auth=false 参数,除非你是一个测试该功能的开发者并且了解它。如果不这样,你会允许未经授权的用户访问你的联邦 apiserver 。你不需要调整 kublete 的该参数: 1.4 的 Kubelet APIs 没有授权。
2 、 batch/v2alpha1.ScheduledJob 被重命名为 batch/v2alpha1.CronJob 。
3 、 PetSet 被重命名为 StatefulSet 。如果你现在有 PetSets ,你要在升级为 StatefulSets 前后进行一些额外的迁移操作。
4 、如果你从 v1.4.x 升级你的集群联邦组件,请更新你的 federation-apiserver 和 federation-controller-manager 到新版本。
5 、废弃的 kubelet --configure-cbr0 参数被移除。经典的网络模式也是。如果你依赖于此模式,请调研其他的网络插件 kubenet 或 cni 是否满足需求。
6 、新的 client-go 结构,参考 kubernetes/client-go 进行版本控制策略。
7 、废弃的 kube-scheduler --bind-pods-qps 和--bind-pods burst 参数被移除,替换为--kube-api-qps 和--kube-api-burst 。
8 、如果你需要使用 1.4 的特性:PodDisruptionBudget(例如创建了 PodDisruptionBudget 对象),那么在从 1.4 升级为 1.5 之前,你一定要删除所有创建的 PodDisruptionBudget 对象(policy/v1alpha1/PodDisruptionBudget)。升级之后不可能删除这些对象。它们的存在也会妨碍你使用 1.5 里 Beta 版的 PodDisruptionBudget 特性(policy/v1beta1/PodDisruptionBudget)。如果你已经进行了升级,那么你需要降级到 1.4 来删除这些 policy/v1alpha1/PodDisruptionBudget 对象。
tips :查看更多精彩内容?关注公众号: tenxcloud2(时速云订阅号) , 我们后续还会发布 kubernetes 1.5 相关文章,大家持续关注哦~
1
dgkae 2016-12-16 10:26:58 +08:00
不错
|
2
Tenxcloud10 OP @dgkae 感兴趣的话也可以翻阅一下我们之前发布的精彩内容。
|