06-0.部署 master 节点

kubernetes master 节点运行如下组件:

  • kube-apiserver
  • kube-scheduler
  • kube-controller-manager

kube-scheduler 和 kube-controller-manager 可以以集群模式运行,通过 leader 选举产生一个工作进程,其它进程处于阻塞模式。

对于 kube-apiserver,可以运行多个实例(本文档是 3 实例),但对其它组件需要提供统一的访问地址,该地址需要高可用。本文档使用 keepalived 和 haproxy 实现 kube-apiserver VIP 高可用和负载均衡。

下载最新版本的二进制文件

CHANGELOG页面 下载 server tarball 文件。

  1. wget https://dl.k8s.io/v1.10.4/kubernetes-server-linux-amd64.tar.gz
  2. tar -xzvf kubernetes-server-linux-amd64.tar.gz
  3. cd kubernetes
  4. tar -xzvf kubernetes-src.tar.gz

将二进制文件拷贝到所有 master 节点:

  1. source /opt/k8s/bin/environment.sh
  2. for node_ip in ${NODE_IPS[@]}
  3. do
  4. echo ">>> ${node_ip}"
  5. scp server/bin/* k8s@${node_ip}:/opt/k8s/bin/
  6. ssh k8s@${node_ip} "chmod +x /opt/k8s/bin/*"
  7. done