当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

k8s+vagrant+ubuntu development env under Mac

作者:小梦 来源: 网络 时间: 2024-07-18 阅读:

背景

虽然官方已有一个vagrant开发环境可用于mac,但是有几个问题:

  1. guest os是fedora,我不熟悉也不喜欢

  2. 使用了并不是必须的salt来装k8s,没有必要

  3. 国内使用的话需要配置翻墙代理,我本人用的不是vpn而是proxy,比较麻烦些

  4. 部分信息稍老,且更新比较慢,而k8s的开发迭代速度很快

因此,我准备按照下述方法构建mac下开发环境:

  1. 使用vagrant+virtualbox用于cluster物理环境管理,即:负责拉起控制节点和K8S集群节点,挂载外部资源文件到VM内

  2. 使用官方ubuntu cluster的安装方式,完成K8S集群软件安装

部署方式

为了节省资源,准备先只用两台VM,功能分别是:

  1. k8s-ctl:作为控制节点,完成待部署的k8s版本准备、kubectl工具安装等,远程连接到k8s master

  2. k8s-master:k8s集群master节点,是个standalone的模式,即:master和node都装在一台VM上

部署过程

Vagrant

假定环境已安装好Vagrant(1.6.2以上)和Virtualbox(4.3),然后需要做三件事:

  1. 准备好box文件,我这里用的是官方的ubuntu 14.04 64bit server

    vagrant box add ubuntu-14.04-amd64
  2. 创建一个目录(本文假定路径为~/k8s/deploy/),也即vagrantfile所在目录

    mkdir -p ~/k8s/deploycd ~/k8s/deploy
  3. 编写Vagrantfile文件:在deploy目录新建一个文件Vagrantfile,写入下述内容:

    Vagrant.configure(2) do |config|  config.vm.define "k8s-ctl" do |c|    config.vm.box = "ubuntu-14.04-amd64"    c.vm.network "public_network"  end  config.vm.define "k8s-master" do |c|    config.vm.box = "ubuntu-14.04-amd64"    c.vm.network "public_network"  endend

然后就可以通过vagrant up启动两台VM,然后可以ssh进入k8s-ctl:

vagrant upvagrant ssh k8s-ctl

安装k8s

这部分主要参考官方ubuntu安装guide,但基于使用场景不同做了一些改动。

主要如下步骤:

  1. 获取可部署的k8s release

    首先下载任意一个k8s release版本(注:此并不是将要部署的版本,而是作为部署环境),建议在host上的~/k8s/deploy,也即是挂载到VM内的/vagrant目录。
    cd ~/k8s/deploywget https://github.com/kubernetes/kubernetes/releases/download/v1.0.6/kubernetes.tar.gz -O - | tar -zxf -
    然后,我们就可以进入k8s-ctl,开始进行部署前的准备工作:
    vagrant ssh k8s-ctl# 可选:配置HTTP代理链接github、s3、gcr.io,若用VPN则不需要export http_proxy=http://<proxy-ip>:<proxy-port>export https_proxy=https://<proxy-ip>:<proxy-port>cd /vagrant/kubernetes/cluster/ubuntu
    修改./build.sh,在文件头添加:
    FLANNEL_VERSION=0.5.3ETCD_VERSION=2.2.0KUBE_VERSION=1.0.6
    然后执行 `./build.sh`,正常结束后,当前路径下会多出一个`binaries/`目录,保存的是k8s多个二进制执行文件。
  2. 修改部署配置:

    config-default.sh文件头部添加如下内容:
    PROXY_SETTING="http_proxy=http://10.0.2.2:9743 https_proxy=https://10.0.2.2:9743"nodes="vagrant@192.168.0.108"role="ai"NUM_MINIONS=1
  3. 开始部署

    export KUBERNETES_PROVIDER=ubuntucd /vagrant/kubernetes/cluster/./kube-up.sh
    注1:如果提示需要sshkey,则`ssh-keygen && ssh-add`注2:如果validate不成功,可能是因为ubuntu镜像缺少一些需要的软件,ssh进入k8s-master VM执行下述操作:
    sudo apt-get install -y pgrep, xxx

热点阅读

网友最爱