说到云服务和集群,目前较为流行的应该是K8s
,过去虽然有尝试意向,但是K8s
的需要高配置机器,且搭建流程复杂,以及较高的学习门槛,最后还是作罢. 近期听说了K8s
的轻量版实现K3s
, 体验了一下后感受到了K8s
的美妙之处, 当然在学习的过程难免也踩了不少坑,特此记录下来让后来者少走一点弯路.
K8s是什么,K3s又是什么
K8s
全称为Kubernetes
,简称为K8s
(k,8个字符,s),或者叫Kube
. 按照官网描述,它的定位是一个支持分布式的工业级容器编排平台.
K3s
是只打包了K8s
集群功能的必要的附加组建和服务的一个轻量版实现,它是K8s
的一个子集,安装更简单,配置要求更低,并且概念和操作基本与K8s
相同,是一个很好的入门方式.
安装
写此文时,我使用的云服务器系统为Ubuntu 20.04 LTS
,在安装过程中我参考了K8S 的轻量版 K3S 安装教程
和朋友Gzp的K8s 快速上手(一) 在云主机上部署我的服务
安装教程.
在大多数指南中,应该会提示你使用以下两种方式安装, 一个是国内提供的加速:
|
|
一个是官方的安装:
|
|
安装加速(可选)
如果尝试以上方式都卡在下载文件中,则前往Github
的下载页面下载最新的K3s
二进制文件,然后上传到服务器中,接着执行以下命令,之后再次尝试上方到安装方式即可.
|
|
验证安装和修改配置
安装完毕后输入sudo kubectl get nodes
,检测输出,如果安装成功了,应该会有以下信息
|
|
此时虽然安装成功了,但是我们需要修改一下K3s
的启动参数, 使我们可以在本地也可以使用kubectl
操作K3s
.
执行以下命令打开配置文件:
|
|
然后修改最后一行ExecStart
的值,在后方加入几个参数,当修改完毕时,应该类似如下:
这里假设服务器的IP为 12.34.56.78
,读者自行替换为自己的服务器ip
|
|
这里加入了俩个参数:
--tls-san
是指tls证书中加入对应的ip
--write-kubeconfig-mode 664
可以让我们不用root权限来执行kubectl
命令
然后再重启服务验证一下
|
|
本地操作 kubectl(可选)
如果觉得每次登陆服务器麻烦,也可以通过本地安装kubectl
工具和增加配置文件来操作服务器上的K3s
.
首先本地电脑建立一个~/.kube/config
文件,然后复制服务器/etc/rancher/k3s/k3s.yaml
的内容到刚建立的文件中.然后把其中server: https://127.0.0.1:6443
中127.0.0.1
部分换成服务器的IP.
然后安装kubectl
,这里读者可以根据自己机器情况选择
Mac
|
|
Ubuntu
|
|
CentOS
|
|
安装完毕后可以通过kubectl get nodes
检查是否与服务器输出一致即可.如果提示无法链接到服务器,那么可能是因为以下两个原因:
- 服务器的安全组中未开放
6443
端口,读者需要自行进入服务器的后台配置安全组策略. - 检查以下服务器的防火墙是否允许
6443
端口的流量
到这里K3s
的安装就完成了,再下一篇文章中我会讲讲K3s
的基本概念和一个部署应用的示例.