在Windows上使用的VirtualBox中的Kubernetes安装程序

这是什么?

由于CoreOS的Kubernetes安装程序项目不支持Windows的VirtualBox,所以我自己创建了一个。
可以创建以下配置的Kubernetes环境。

-------------------------------
|          Kubernetes         |
-------------------------------
| Core OS | Core OS | Core OS |
-------------------------------
|          VirtualBox         | <- Vagrantで操作
-------------------------------
|           Windows           |
-------------------------------
|             H/W             |
-------------------------------

使用方法

前提条件 tí

需要安装了VirtualBox,并且在Windows的命令提示符中有以下命令行工具可用的环境。

    • 7-Zip

 

    • Git

 

    • Kubernetes CLI

 

    • OpenSSH

 

    • OpenSSL

 

    Vagrant

请在下一章中,我还会详细介绍安装上述命令行工具的步骤。请确保已经完成VirtualBox的安装,然后再继续进行后续的步骤。

安装命令行工具集

如果未安装前提条件中所述的命令行工具,请按照以下步骤进行安装。

1. 安装Chocolatey

使用适用于Windows的软件包管理器Chocolatey来安装命令行工具。

1-1. 使用管理员身份运行命令提示符。

1-2. 将以下内容粘贴并执行。

> @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

1-3. 确认安装

显示版本信息以确认安装是否正常完成

> choco
Chocolatey v0.10.8
Please run 'choco -?' or 'choco <command> -?' for help menu.

2. 安装各个命令行工具。

以管理员身份运行命令提示符,使用Chocolatey安装各个命令行工具。对于尚未安装的工具,执行以下命令。

・7-Zip:七-壓縮

> choco install 7zip.install

· Git (a version control system) – 代码托管平台

> choco install git --params="/NoAutoCrlf" -y

・Kubernetes 命令行界面

> choco install kubernetes-cli

打开SSH

> choco install openssh

・OpenSSL 可在中文环境中打开

> choco install openssl.light

・游民

> choco install vagrant

安装完成后,请先关闭命令提示符窗口,然后再用普通用户身份重新启动。

获取安装脚本

由於安裝腳本位於GitHub上,您可以選擇將其Clone到任意文件夾,或者下載它。

如果要将其克隆到主目录中,需要启动命令提示符并运行以下命令。

> cd %HOMEPATH%
> git clone https://github.com/hhiroshell/coreos-kubernetes.git

启动(虚拟机和)Kubernetes集群

使用Vagrant来启动虚拟机和Kubernetes集群。

如果要配置单节点集群

> cd %HOMEPATH%\coreos-kubernetes\single-node
> vagrant up

构建一个多节点的群集时,如果。

> cd %HOMEPATH%\coreos-kubernetes\multi-node\vagrant
> vagrant up

多节点集群默认会启动一台虚拟机用于控制器(controller)、工作节点(worker)和etcd。如果想增加这些数量,可以将config.rb.sample文件重命名为config.rb,并将要指定属性的行注释掉或更改其值。

如果你想要有两个工作人员,可以这样做。

#$update_channel="alpha"

#$controller_count=1
#$controller_vm_memory=512

$worker_count=2
#$worker_vm_memory=1024

#$etcd_count=1
#$etcd_vm_memory=512

注意:
第一次运行`vagrant up`时,将在虚拟机启动后进行Kubernetes各个组件的安装。
由于需要下载软件包,会产生相当大的通信量,建议在具有足够网络速度的环境中运行。据筆者的感受,在每秒数十MB的环境下,大约需要5-10分钟。

Kubernetes CLI的配置设置

为了操作已启动的集群,我们可以使用Kubernetes CLI。在这里,我们需要进行CLI配置,以便连接到目标集群。

单节点情况

> kubectl config set-cluster vagrant-single-cluster --server=https://172.17.4.99:443 --certificate-authority=%cd%/ssl/ca.pem
> kubectl config set-credentials vagrant-single-admin --certificate-authority=%cd%/ssl/ca.pem --client-key=%cd%/ssl/admin-key.pem --client-certificate=%cd%/ssl/admin.pem
> kubectl config set-context vagrant-single --cluster=vagrant-single-cluster --user=vagrant-single-admin
> kubectl config use-context vagrant-single

在有多个节点的情况下 duō gè de xià)

> kubectl config set-cluster vagrant-multi-cluster --server=https://172.17.4.101:443 --certificate-authority=%cd%\ssl\ca.pem
> kubectl config set-credentials vagrant-multi-admin --certificate-authority=%cd%\ssl\ca.pem --client-key=%cd%\ssl\admin-key.pem --client-certificate=%cd%\ssl\admin.pem
> kubectl config set-context vagrant-multi --cluster=vagrant-multi-cluster --user=vagrant-multi-admin
> kubectl config use-context vagrant-multi

注意:
Kubernetes CLI的配置信息默认会写入以下配置文件,并根据其进行操作。

    %HOMEPATH%.kube\config

如果你想要指定要引用的配置文件路径,可以通过环境变量KUBECONFIG来指定并引用。此外,要确认当前应用的配置信息,可以执行以下命令。

> kubectl config view

请确认连接。

展示组成集群的节点,并确认Kubernetes和Kubernetes CLI正在运行。

> kubectl get nodes
NAME          STATUS    AGE       VERSION
172.17.4.99   Ready     3d        v1.5.4+coreos.0

提供的信息

在撰写本文时,实际操作确认所使用的环境如下。

    • プラットフォーム

Windows 10 Pro: Version 1607(Anniversary Update)
VirtualBox: 5.1.22 r115126 (Qt5.6.2)

コマンドラインツール

7-Zip (install): 16.4.0.20170506
Git for Windows: 2.14.1
Kubernetes CLI: v1.7.5
OpenSSH: OpenSSH_7.5p1, LibreSSL 2.5.3
OpenSSL: OpenSSL 1.1.0f 25 May 2017
Vagrant: 2.0.0

注释

请参考官方文件以获取详细信息。
广告
将在 10 秒后关闭
bannerAds