kubernetes 使用二进制文件安装:安装参考
双Master,我们使用haproxy 做双机负载均衡: 参考 kubernetes high-availability
一、1.6 升级到 1.7 :
1.7 更新说明以及二进制文件下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.7.md
1.7 各个组件的启动配置文件参考:https://github.io/.....
各个组件的启动参数可以不变。
二、1.7 升级到 1.8 :
1.8 更新说明以及二进制文件下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.8.md
1.8 各个组件的启动配置文件参考:https://github.io/.....
1.kubelet的启动参数中,--require-kubeconfig已经不用了,如果配置了会在日志中看到警告。并且,--experimental-bootstrap-kubeconfig已经去掉了experimental-这个单词。
3.在1.8.4增加了Node Authorization机制,需要在apiserver中的配置文件中--authorization-mode=增加一个Node值,并在--admission-control=...,增加一个NodeRestriction,..不然会报错。并删除 system:node cluster role binding
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,NodeRestriction \
--authorization-mode=Node,RBAC
(或者你可以不加这个Node Authorization机制,这样会导致节点使用kubelet-bootstrap注册不成功,会出现权限问题。)
4. 注意:替换kubelet二进制文件,会导致所有容器重启。
5. 配置文件:https://github.com/4220182/kubernetes/tree/master/k8s/1.8.10
三、1.8 升级到 1.9 :
1.9 更新说明以及二进制文件下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md
1.9 各个组件的启动配置文件参考:https://github.io/.....
1. kube-apiserver 中的 --experimental-bootstrap-token-auth 改为:--enable-bootstrap-token-auth
2. HA 方面改进非常大:kube-apiserver 中增加 --endpoint-reconciler-type=lease
在1.9以前,如果我们有两台kube-apiserver通常我们设置 --apiserver-count=1 ,这样当一台kube-apiserver挂掉,触发自动更新 ep/kubernetes 的节点IP,但是,当两台kube-apiserver同时存活的时候,就会导致频繁更新ep/kubernetes 如:
1.8以及1.8以前的版本,当两台kube-apiserver同时存活时
以及--apiserver-count=1
[root@master-host0 ~]# kubectl get ep kubernetes
NAME ENDPOINTS AGE
kubernetes 192.168.5.7:443 183d
[root@master-host0 ~]# kubectl get ep kubernetes
NAME ENDPOINTS AGE
kubernetes 192.168.5.6:443 183d
可以看到endpoints在两台apiserver中不断来回切换。
在1.9 以后,增加 --endpoint-reconciler-type=lease 它使用了一个被每个 apiserver 副本定期更新的租约。当副本宕机时,它会停止更新自己的租约,其他副本注意到这个租约过期并从 endpoint 列表中将其删除:
1.9+版本,两台kube-apiserver存活的时候,
以及设置了 --endpoint-reconciler-type=lease
[root@master-host0 ~]# kubectl get ep kubernetes
NAME ENDPOINTS AGE
kubernetes 192.168.5.6:443,192.168.5.7:443 183d
当一台kube-apisever挂掉:
[root@master-host0 ~]# kubectl get ep kubernetes
NAME ENDPOINTS AGE
kubernetes 192.168.5.7:443 183d
ha详细参考: https://k8smeetup.github.io/docs/admin/high-availability/
配置文件:https://github.com/4220182/kubernetes/tree/master/k8s/1.9.8
参考:
各个组件的完整启动参数: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
中文参考:https://kubernetes.io/cn/docs/admin/kube-apiserver/