Kubernetes的离线部署(Ubuntu)方法试验

开源中国社区最新推荐博客 / 2018-09-05 08:20

为了在内网上使用Kubernetes,有时候因为网络原因,需要离线进行部署。

裸机安装

我这里使用Ubuntu进行试验,需要解决几个问题:

  1. Ubuntu的离线安装。下载,安装时选择不联网可以正常完成,没有问题。
  2. Ubuntu的包更新,应用系统包必须更新到较新版本,否则有的软件安装不上。
    • 这个可以通过建立本地内网的Archive镜像来实现。
      • 这个其实嘛,最好是全部抓源码自己编译,搞个分发版。不过难度和资源都比较大,还是吃现成的吧。
      • 先镜像下来整个最新的软件包。参考:
      • 再把archive包目录全部复制到内网(物理拷贝或通过网闸),然后建立mirror服务。
        • 使用apt-mirror或者nginx、ipfs建立静态网站服务即可。
    • 修改/etc/apt/sources.list或该目录下相关文件,指向到新建立的服务。
      • 然后运行 sudo apt update && sudo apt upgrade -y即可更新安装包了。
  3. Docker容器引擎的下载和离线安装,这是Kubernetes运行的基础了。
    • 如果使用GPU,还需要下载Nvidia-Docker并进行安装。
  4. kubeadm/kubectl/kubelet的安装,这是Kubernetes运行的几个基础文件。其它的部分都已经容器化了,通过容器的离线下载进行部署。
  5. Kubernetes系统容器的下载和安装。需要几个步骤来完成。
    • 通过脚本下载(需要周转的哈)到本地(参考 Ubuntu 18.04 LTS安装Kubernetes 1.11)。
    • 然后export到容器档案格式。
    • 复制到内部网络环境。
    • 对容器档案解包,恢复为Docker镜像。
  6. 使用kubeadm或其它工具进行安装。与在线安装基本相同,需要指定安装的版本,否则会去在线搜索。

还有其它的办法(满足的需求和效果不同),包括:

  • 在网络环境下,做好虚拟机,然后整个放到内网上运行。但是,更新还需要单独处理,而且需要注意软件和数据的安全性。
  • 使用DinD(Docker in Docker),跟虚拟机类似,不同的是整个Kubernetes集群都运行在Docker中。
  • 建立自己的操作系统分发版,把相关软件打包进去。

其它参考

Shared via Inoreader