升级到Kubernetes1.6需要准备事项

今天Kubernetes官方正式发布了ReleaseNote,重点强调了一些注意事项。希望对同样有升级Kubernetes 1.6计划的朋友有所帮助。

1、ETCD集群备份

在更新到1.6之前,强烈建议您备份ETCD集群中的数据。请查阅您正在使用的安装工具(kargo, kops, kube-up, kube-aws, kubeadm)以获得具体建议。

Kubernetes 1.6鼓励使用ETCD 3.0,从ECTD 2.0切换到ETCD 3.0涉及不同的存储引擎之间的数据的完全迁移。在从ETCD 2.0–>ETCD 3.0迁移期间,您必须停止API Server,防止向ETCD集群中写入数据。HA的方案目前无法使用官方的Kubernetes工具进行迁移。

如果使用ETCD 3.0,Kubernetes 1.6也默认采用protobuf编码。这种变化是不可逆的。如果要回滚,您必须使用protobuf/ETCD 3.0切换之前的数据进行备份还原,并且自备份以来的数据更改都会丢失。由于Kubernetes 1.5不支持protobuf编码,如果升级到protobuf后回滚到1.5版本那么,您仍需从切换之前的备份中恢复,同样,自转换protobuf之后的任何数据更改都将丢失。转换到protobuf后,您应该在验证Kubernetes集群能够正确工作之后再投入生产使用。

备份是一个很好的预防措施,特别是在升级的过程中。此次升级过程有多个已知的问题,唯一的应对方法就是从备份中还原。

2、主要更新和发布主题

  • 通过使用ETCD 3.0, Kubernetes集群现在默认支持5000个节点。
  • 基于角色的访问控制(RBAC)升级到Beta版,并为控制平面、节点、控制器等组件定义了默认的安全角色。
  • kubeadm的集群引导工具升级到了Beta版,亮点:所有的通信都通过TLS进行。
  • 授权(Authorzation)插件可以有kubeadm安装,包括了新的RBAC默认的设置。
  • 引导令牌系统现在允许令牌的管理和过期。
  • kubefed联邦引导工具现在也升级到了Beta版。
  • 现在Kubernetes与容器运行时的交互通过CRI接口进行,这使kubelet与container runtime集成更加容易。Docker仍然是通过Docker-CRI(Beta版)。
  • 多种调度相关的特性已经升级到Beta版:
    您现在可以同时使用多种调度器。
    Node和Pod现在支持亲和性和反亲和性。
    高级的调度可以使用污点(taint)和耐受(toleration)特性。
  • 当一个节点有问题时,您可以指定(每个Pod)Pod在这个节点上的停留时间。
  • 多种存储相关的特性升级到了GA版:
    StorageClass预先安装并在Azuer, AWS, GCE, OpenStack和vSphere上设置为默认值。
    可配置Dynamic Provisioning和StorageClass。
    现在可以通过滚动升级来更新DaemonSet。

3、新特性与更新细节

请参考我们关于Kubernetes 1.6新特性的详细介绍:《期待!| Kubernetes 1.6 即将发布

20161219151628

欢迎关注译者公众号