Сборка и запуск Kubernetes из исходников

Запуск и выполнение kubernetes локально на платформе, отличной от Linux, было бы невозможно без использования какой-либо формы виртуализации, например, VirtualBox или Vsphere. Но настроить виртуальную машину на вашем Mac или Windows тоже непросто. К счастью, Vagrant делает вещи намного проще. Это особенно полезно, если вы хотите внести свой вклад в Kubernetes с открытым исходным кодом.

В этом посте мы рассмотрим, как собрать и запустить Kubernetes локально, используя VirtualBox и Vagrant.

  1. Установить голанг и убедитесь, что ГОПУТ установлена ​​среда.
  2. Установить Бродяга а также Виртуальный бокс.
  3. Выполните следующие команды, чтобы добавить поддержку общего доступа к файлам между хостом и гостевой ВМ.
$ vagrant plugin install vagrant-vbguest
  1. Клонируйте репозиторий kubernetes.
$ cd ${GOPATH}/src/k8s.io
$ git clone git@github.com:kubernetes/kubernetes.git
  1. Создайте Vagrantfile со следующим содержимым. Этот файл позволит vagrant создать виртуальную машину centos7 и установить golang, etcd, docker и совместно использовать исходный каталог Kubernetes между хостом и гостевой виртуальной машиной.
VM_USER = 'vagrant'
HOST_GOPATH = ENV['GOPATH']
HOST_KUBERNETES_DIR = HOST_GOPATH + '/src/k8s.io/kubernetes'

$install_go = <<-SCRIPT
    curl -fsSLo go.tar.gz "
    tar -C /usr/local -zxvf go.tar.gz
    echo 'export PATH=${PATH}:/usr/local/go/bin' >> /home/${1}/.bash_profile
    echo "export GOPATH=/home/${1}/go" >> /home/${1}/.bash_profile
SCRIPT

$install_docker = <<-SCRIPT
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo 
    yum install -y docker-ce docker-ce-cli containerd.io
    usermod -a -G docker ${1}
    systemctl start docker.service
SCRIPT

$install_etcd = <<-SCRIPT
    curl -fsSL -o etcd.tar.gz --retry 3 --keepalive-time 2 
    tar -C /usr/local/bin -zxvf etcd.tar.gz --strip-components=1
SCRIPT

Vagrant.configure("2") do |config|
    config.vm.box = 'centos/7'
    config.vm.hostname="kubernetes"
    config.vm.define 'kubernetes'
    config.vm.provider "virtualbox" do |v|  
        v.name="kubernetes"
        v.memory = 2048
        v.cpus = 2
    end
    config.vm.synced_folder HOST_KUBERNETES_DIR, '/home/'+VM_USER+'/go/src/k8s.io/kubernetes', create: true, group: VM_USER, owner: VM_USER
    config.vm.provision "shell" do |s|
        s.inline = $install_go
        s.args = [VM_USER]
    end
    config.vm.provision "shell" do |s|
        s.inline = $install_docker
        s.args = [VM_USER]
    end
    config.vm.provision "shell" do |s|
        s.inline = $install_etcd
    end
    config.ssh.username = VM_USER
end

  1. Выполните следующую команду, чтобы запустить виртуальную машину.
$ vagrant up kubernetes
  1. Для сборки и запуска kubernetes внутри виртуальной машины.
$ vagrant ssh kubernetes
[vagrant@kubernetes ~]$ cd ${GOPATH}/src/k8s.io/kubernetes
[vagrant@kubernetes ~]$ bash hack/local-up-cluster.sh
  1. Откройте другой терминал в виртуальной машине, чтобы запустить развертывание nginx в kubernetes.
$ vagrant ssh kubernetes
[vagrant@kubernetes ~]$ cd ${GOPATH}/src/k8s.io/kubernetes
[vagrant@kubernetes ~]$ export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig
[vagrant@kubernetes ~]$ cluster/kubectl.sh create deployment nginx --image=nginx
  1. Вы можете открыть исходный код kubernetes в Visual Studio Code, установить необходимые необходимые инструменты для перехода. Внесите изменения в код и повторите шаг 5.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *