安装依赖
Vagrant
目前 Vagrant (https://www.vagrantup.com/downloads.html) 最新为 v2.2.6,Kubernetes 为 v1.16
Kubectl
下载最新版的 kubectl:
1 | `curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl` |
VirtualBox
需要下载 Vagrant 所兼容的版本( https://www.vagrantup.com/docs/virtualbox/ )。我是直接用 apt-get 安装 5.2 的版本。
1 | apt-get install virtualbox virtualbox-guest-additions-iso |
运行 ubuntu 单实例
创建 Vagrantfile 配置文件,这里在 virtualbox 内运行的是 Ubuntu 18.04。
若 Vagrant 的 Box 文件下载太慢,可先提前下载好:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20wget https://app.vagrantup.com/ubuntu/boxes/bionic64/versions/20191125.0.0/providers/virtualbox.box
cat > virtualbox.json <EOF
{
"name": "ubuntu/bionic64",
"versions": [
{
"version": "20191125.0.0",
"providers": [
{
"name": "virtualbox",
"url": "virtualbox.box"
}
]
}
]
}
EOF
vagrant box add ubuntu/bionic64 virtualbox.json
1 | # -*- mode: ruby -*- |
接着启动 ubuntu
1 | vagrant up |
登录 ubuntu 实例
1 | vagrant ssh |
至此 ubuntu 就是运行起来了。然后却只有一个 实例,但是在实际应用中可能是多个实例组成的集群。
运行 ubuntu 多实例
先停止刚刚的实例
1 | vagrant halt |
然后修改 Vagrantfile 文件,将 $num_instances 变量改为3。这里我就启动3个实例来组成集群。
接着启动这3个实例
1 | vagrant up |
查看实例状态
1 | -> % vagrant status |
然后登录到其中的某个实例
1 | vagrant ssh ubuntu-02 |
安装 Kubernetes
目前的3个 ubuntu 实例如下:
1 | 172.17.8.101 (ubuntu-01) master |
因为是在本地学习 k8s,因此为了方便我就使用 Rancher 的 k3s 来进行安装。
先分别在各个实例中安装 docker,参考: https://docs.docker.com/install/linux/docker-ce/ubuntu/
先安装 master node
1 | vagrant ssh ubuntu-01 |
接着分别进入另外两个实例内安装 worker node,其中 K3S_TOKEN 的值来自 /var/lib/rancher/k3s/server/node-token 文件。
1 | vagrant ssh ubuntu-02 |
最后可以将 master node 的 /etc/rancher/k3s/k3s.yaml 文件内容复制到 host 系统上来,这样就可以直接在 host 系统中用 kubectl 来操作集群。
1 | -> % k get nodes -o wide |
当前安装的 k3s 是 v1.0.0,k8s 是 v1.16.3
最后我将完整的配置已经上传到 github 上了。大家有需要可以直接执行如下命令即可:
1 | git clone https://github.com/wusuopu/kubernetes-vagrant-ubuntu |