kubeadm
Kubernetes 一键部署脚本(使用 docker 运行时)
# on master
export USE_MIRROR=true #国内用户必须使用MIRROR
git clone https://github.com/feiskyer/ops
cd ops
kubernetes/install-kubernetes.sh
# 记住控制台输出的 TOEKN 和 MASTER 地址,在其他 Node 安装时会用到
# on all nodes
git clone https://github.com/feiskyer/ops
cd ops
# Setup token and CIDR first.
# replace this with yours.
export TOKEN="xxxx"
export MASTER_IP="x.x.x.x"
export CONTAINER_CIDR="10.244.2.0/24"
# Setup and join the new node.
./kubernetes/add-node.sh以下是详细的 kubeadm 部署集群步骤。
初始化系统
所有机器都需要初始化 docker 和 kubelet。
ubuntu
CentOS
安装 master
如果需要修改 kubernetes 服务的配置选项,则需要创建一个 kubeadm 配置文件,其格式为
注意:JoinConfiguration 重命名自 v1alpha2 API 中的 NodeConfiguration,而 InitConfiguration 重命名自 v1alpha2 API 中的 MasterConfiguration。
然后,在初始化 master 的时候指定 kubeadm.yaml 的路径:
配置 Network plugin
CNI bridge
flannel
注意:需要 kubeadm init 时设置 --pod-network-cidr=10.244.0.0/16
weave
calico
注意:需要 kubeadm init 时设置 --pod-network-cidr=192.168.0.0/16
添加 Node
跟 Master 一样,添加 Node 的时候也可以自定义 Kubernetes 服务的选项,格式为
在把 Node 加入集群的时候,指定 NodeConfiguration 配置文件的路径
Cloud Provider
默认情况下,kubeadm 不包括 Cloud Provider 的配置,在 Azure 或者 AWS 等云平台上运行时,还需要配置 Cloud Provider。如
删除安装
动态升级
kubeadm v1.8 开始支持动态升级,升级步骤为
首先上传 kubeadm 配置,如
kubeadm config upload from-flags [flags](使用命令行参数)或kubeadm config upload from-file --config [config](使用配置文件)在 master 上检查新版本
kubeadm upgrade plan, 当有新版本(如 v1.8.0)时,执行kubeadm upgrade apply v1.8.0升级控制平面手动 升级 CNI 插件(如果有新版本的话)
添加自动证书回滚的 RBAC 策略
kubectl create clusterrolebinding kubeadm:node-autoapprove-certificate-rotation --clusterrole=system:certificates.k8s.io:certificatesigningrequests:selfnodeclient --group=system:nodes最后升级 kubelet
手动升级
kubeadm v1.7 以及以前的版本不支持动态升级,但可以手动升级。
升级 Master
假设你已经有一个使用 kubeadm 部署的 Kubernetes v1.6 集群,那么升级到 v1.7 的方法为:
升级安装包
apt-get upgrade && apt-get update重启 kubelet
systemctl restart kubelet删除 kube-proxy DaemonSet
KUBECONFIG=/etc/kubernetes/admin.conf kubectl delete daemonset kube-proxy -n kube-systemkubeadm init --skip-preflight-checks --kubernetes-version v1.7.1
更新 CNI 插件
升级 Node
升级安装包
apt-get upgrade && apt-get update重启 kubelet
systemctl restart kubelet
安全选项
默认情况下,kubeadm 会开启 Node 客户端证书的自动批准,如果不需要的话可以选择关闭,关闭方法为
关闭后,增加新的 Node 时,kubeadm join 会阻塞等待管理员手动批准,匹配方法为
参考文档
最后更新于