Racksapec上部署入门

译者:安雪艳 校对:无

内容列表

入门介绍

  • 支持版本: v0.18.1

一般来说,Racksapce的dev-build-and-up.sh工作流程类似于Google Compute Engine。具体实现是不同的,因为Rackspace使用CoreOS, Rackspace云文件和整体网络设计。

这些脚本应该用于部署Kubernetes的开发环境。 如果你的账号利用RackConnect或者非标准的网络,若不修改这些脚本,这些脚本将无法使用。

注意: rackspace脚本不依赖saltstack而依赖于配置文件cloud-init。

当前集群设计受如下启发:

部署需求

  1. Python2.7
  2. 需要安装 novaswiftly。推荐使用python virtualenv来安装这些包。
  3. 确认已经有与OpenStack APIs交互的合适的环境变量。获取更详细信息请查看 Rackspace文档

供应商:Rackspace

  • 使用 KUBERNETES_PROVIDER=rackspace从源码编译自己的发布版本并且运行bash hack/dev-build-and-up.sh
  • 注意: 我们脚本中还没有提供get.k8s.io安装方法。
    • 请使用 export KUBERNETES_PROVIDER=rackspace; wget -q -O - https://get.k8s.io | bash来安装Kubernetes最近发布版本

编译

  1. Kubernetes二进制文件将通过build/下的的通用编译脚本编译。
  2. 如果已经设置了环境变量ENV KUBERNETES_PROVIDER=rackspace, 脚本将上传kubernetes-server-linux-amd64.tar.gz到云文件。
  3. 通过swiftly创建一个云文件容器,且在这个对象内启用一个临时URL。
  4. 编译过的kubernetes-server-linux-amd64.tar.gz将上传到这个容器内,当master/nodes启动时这个URL将传到master/nodes。

集群

有一个特殊的cluster/rackspace脚本目录有如下步骤:

  1. 创建一个云网络并且所有的实例附属于这个网络。
    • flanneld使用这个网络作为下一跳路由。这些路由使每个节点上的容器和这个私有网络内其他的容器之间通信。
  2. 如果需要,将创建且上传一个SSH key。这个key必须用于ssh登录机器(我们不捕获密码)
  3. 通过nova CLI创建主节点server和额外节点。生成一个cloud-config.yaml作为户数据和整个系统的配置
  4. 然后,我们通过$NUM_MINIONS定义的数量启动节点。

注意点

  • 脚本设置eth2成为云网络,容器可通过它通信。
  • config-default.sh中条目的数量可通过环境变量覆盖。
  • 旧版本请选择:
    • 使用git chechout v0.9同步到v0.9
    • 下载snapshot of v0.9
    • 使用git checkout v0.3同步到v0.3
    • 下载snapshot of v0.3

网络设计

  • eth0 - servers/containers访问网络的公有接口
  • eth1 - ServiceNet - 集群内部通信 (k8s, etcd, etc) 通过这个接口。cloud-config文件使用特殊CoreOS标识符$ private_ipv4配置服务
  • eth2 - Cloud Network - k8s pods使用这个和其他pods通信。服务代理通过这个接口传输流量。