相信不少同学对于 Kubernetes 已经摩拳擦掌,作为当下最流行的服务运维平台,这个盛名之下的庞大软件到底怎么玩转?
作为一个功能丰富、组件众多的“云原生操作系统”,安装和配置Kubernetes 的复杂性的确容易让人望而却步。不过,Kubernetes 社区经过几年的快速发展,已经出现了不少颇为易用的安装、部署工具,能够帮助初学者和新用户用最简单的步骤上手 K8s。
接下来跟我一起尝试用下面几个非常易用的工具,开始自己的 Kubernetes 学习之旅吧~
1.MicroK8s
MicroK8s 是由Ubuntu推出的基于snap的包。在最新的 Ubuntu 系统下(20.04以上),可以直接使用 snap 命令快速安装一个本地 Kubernetes 集群。
在 shell 中执行如下命令:
- $ sudo snap install --classic microk8s
(如果系统没有 snap 命令,可以通过 apt-get install snap 来安装)
MicroK8s安装完成以后,通过 sudo microk8s kubectl 命令来访问集群:
- $ sudo microk8s kubectl get node
- NAME STATUS ROLES AGE VERSION
- ip-172-44-255-31 NotReady <none> 65s v1.20.2-34+350770ed07a558
MicroK8s 还集成了很多插件,比如 storage插件也可以通过 microk8s 命令来管理。例如:
- $ sudo microk8s enable storage ingress
如果想把多个节点加入同一个 Kubernetes 集群,可以使用sudo microk8s add-node 命令,然后根据提示进行操作。
2.K3S
K3S 是 Rancher 推出的一个高集成度的 Kubernetes 发行版,所有的组件都被打包在一个可执行文件中,并且进行了轻量化。
K3S程序可以在这里下载:
https://github.com/rancher/k3s/releases/latest
把 K3S 文件下载到 /usr/local/bin 并且设为可执行以后,就可以用一个命令启动集群服务:
- $ sudo k3s server
访问集群同样是通过 K3S 命令:
- $ sudo k3s kubectl get node
如果要把多个主机加入一个集群,可以在另外的节点上执行:
- $ sudo k3s agent –server https://$SERVER:6443 –token $TOKEN
其中$SERVER和$TOKEN要匹配第一台主机的地址和 /var/lib/rancher/k3s/server/node-token 文件内的令牌。
3.RKE
RKE的全称是 Rancher Kubernetes Engine,也是由 Rancher开发和维护的Kubernetes发行版。跟偏重边缘计算场景的 K3S 相比,RKE 更多面向传统的数据中心生产环境,偏重集群化部署,且可定制性更强。
要安装一个 RKE 的集群,可以从这里下载 RKE 程序:
https://github.com/rancher/rke/releases
然后使用 rke config --name cluster.yml 创建一个新的集群部署配置。
编辑 cluster.yml 文件,填充集群的主机列表和访问方式等,同时还可以定制集群的初始化配置。
配置文件的一个片段如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
nodes: - address: 11.37.129.93 port: "22" internal_address: 10.1.4.245 role: - controlplane - worker - etcd - address: 4.103.57.64 port: "22" internal_address: 10.1.1.101 role: - worker |
然后执行 rke up 命令,就会开始安装。注意部署 RKE 的节点需要预先安装Docker。
完成以后,当前目录下出现 kube_config_cluster.yml 文件,即可通过 kubectl命令来访问集群:
- $ kubectl –kubeconfig kube_config_cluster.yml get node
4.KIND
Kind 是 Kubernetes-in-Docker 的缩写。在安装有 Docker 的主机上创建一个测试用的多节点Kubernetes集群非常容易,而且由于整个集群都在 Docker 的容器环境中运行,不会对主机环境和其它配置造成过多干扰。
kind 命令可以从这里下载:https://kind.sigs.k8s.io/
保存到 /usr/local/bin 以后,直接执行 kind create cluster 就可以创建一个集群:
如果你想尝试多节点的集群,也可以:
- $ cat > kind.config <<EOF
- kind: Cluster
- apiVersion: kind.x-k8s.io/v1alpha4
- # One control plane node and three "workers".
- nodes:
- - role: control-plane
- - role: worker
- - role: worker
- - role: worker
- EOF
- $ kind create cluster --config kind.config
命令完成后,系统中会出现几个新的 Docker 容器。并且 $HOME/.kube/config 文件会自动更新,因而直接运行 kubectl get node 就可以访问 kind 集群了。