您的位置:首页 > 其它

[static pod部署方式]kubernetes 升级方式

2017-05-04 17:07 375 查看


0.prerequisite

 1.下载文件:

     从Kubernetes的github上下载最新的发布版    :https://github.com/kubernetes/kubernetes/releases

2.测试环境文件发布包地址(112.74.163.191)

   Kubernetes1.4.3 release :    /data01/naturecloud/k8s

   Kubernetes1.3.4 release  :      //backup/20161018/binary  (只含部分二进制文件:kube-apiserver  kubectl  kubelet etc.)

3.解压kubernetes.tar.gz

   得到k8s的发布版,里面包含了源代码,各种平台的发布包等,相见目录kubernetes/ 

4. 进入kubernetes/server目录选择 kubernetes-server-linux-amd64.tar.gz

   解压后,进入目录/server/bin ,所有二进制文件就在这个目录下了(kubelet、kubectl etc.)

5、需要为每个kubelet设置配置文件 一个manifests监视目录:(kubelet
默认配置文件地址 /etc/default/kubelet)
--config=/etc/kubernetes/manifests


1.Kubernetes部署方式

通过封装kubelet为upstart服务,直接通过upstart启动kubelet。kubelet定时扫描/etc/kubernetes/manifests下master.json 和minion.json

这两个json文件为Kubernetesmaster和node节点需要的所有服务,通过container的形式启动,包括api-server,scheduler,controller-manager,proxy等。

详细:https://my.oschina.net/caicloud/blog/702855


2.一般升级步骤

   替换master.json 和minion.json文件中的hyperkube版本信息
   等待kubelet自动升级hyperkube
   停止kubelet
   替换kubelet
   重启kubelet

kubelet启动日志:                /var/log/upstart/kubelet.log   

kubelet配置文件:                /etc/default/kublet

kubernetes配置文件目录:   /etc/kubernetes/manifests


3.通过升级脚本升级

脚本位置:  共享文件 kubeletUpdater.tar

使用方法:
  确保发布机器是master机器
  确保发布机器可以免密码ssh登录到其他机器(方便scp,不然每次scp都会需要输入密码)
【注意】根据具体环境,更改upgrade.sh文件中几个变量的值(如果与默认值相同则不需更改,默认值为测试环境中相应配置路径)
         clusterips(节点ip)、
         kubebinarypath(新版本kubelet二进制文件所在目录,用于替换) 
         kubeletpath(当前机器以及集群中kubelet文件所在目录,默认值:/opt/bin)
         manifest  (配置文件master.json、minion.json所在目录,默认值:/etc/kubernetes/)
  运行upgrade.sh {版本号},例如:upgrade.sh 1.4
  等待脚本更改hyperkube版本等步骤,脚本的执行步骤如“2.一般升级步骤”所示
  验证是否升级成功,验证方式如下所示


4.验证升级是否成功

   验证apiserver 是否是最新版本:    kubectl version|grep Server |awk '{print $5}'
   验证kubelet是否是最新版本:        kubelet --version
   查看kubelet日志是否有问题:           tail -n 10 /var/log/upstart/kubelet.log
   查看apiserver 在docker中的日志: docker ps|grep apiserver|awk '{print $1}'|xargs docker logs


5.High Available Cluster 

通过今天kubelet的方式启动多个master ,当某个master故障时候,通过keepalived
切换master
http://kubernetes.io/docs/admin/high-availability/


Last.Q&A

kubelet启动失败,查看kubelet.log查错。
api-server启动失败,docker ps -a|grep apiserver,docker logs {apiserver_pid},通过docker日志查看apiserver出错信息
发布文件备份目录: /backup    ,该目录下备份升级前的 manifest文件和kubelet文件,避免升级失败,及时能够回滚。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  k8s kubernets