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

评论