云计算
关于k3s
K3s是由Rancher Labs发布的Kubernetes轻量级发行版。该产品是专门为在资源有限的环境中运行Kubernetes的R&D和运维人员设计的。
它是经过认证的Kubernetes发行版,其最低系统要求是:
系统内核版本:Linux 3.10
每台服务器的最低内存要求:512 MB。
每个节点的最低RAM要求:75MB
最低磁盘空间要求:200 MB
支持的硬件架构:x86_64、ARMv7、ARM64。
这些低配置要求使得k3s非常适合物联网相关的场景。
在GitLab中创建项目
在安装k3s之前,我们先在Gitlab上新建一个名为api的项目。
创建完成后,我们单击侧面菜单栏中的Operations,然后在下面的菜单中选择Kubernetes。
我们现在有两个选择:
在GKE创建一个新的Kubernetes集群
导入现有Kubernetes集群的配置(可以在创建该集群的任何地方导入)。
注意:在GitLab的当前版本中,新集群的创建仅限于GKE。
我们选择[添加现有集群]选项卡。
在这一步中,我们需要填写几个字段,以提供我们需要集成的集群配置。保持此选项卡打开,暂时忽略它。现在,让我们首先创建一个全新的Kubernetes集群。
创建k3s集群
我们现在将启动一个基于k3s的Kubernetes集群。为什么是k3s?因为我想展示设置它是多么容易。为了使步骤清晰,我们只设置了一个节点集群。
我已经配置了名为node1的Ubuntu 18.04服务器。在这台主机上获得一个shell之后,我们只需要运行下面的命令来安装k3s,这是一个经过认证的Kubernetes集群。
root@node1:~?$?卷曲?-sfL?https://get.k3s.io?|?嘘?-
上述命令类似于用于快速docker安装的命令:
卷曲?https://get.docker.com?|?嘘
安装完成后,可以在/etc/ranger/k3s/k3s.yaml中找到连接到集群的配置文件。
root@node1:~?$?猫?/etc/rancher/k3s/k3s.yaml
apiVersion:第五颅神经的眼支
集群:
-?群集:
证书-授权-数据:LS0tL.tCg==
服务器:https://本地主机:6443
姓名:系统默认值
上下文:
-?背景:
集群:系统默认值
用户:系统默认值
姓名:系统默认值
当前上下文:系统默认值
善良:配置
偏好:{}
用户:
-?姓名:系统默认值
用户:
密码:48f4b.4b4e7
用户名:管理
本地kubectl将自动使用这个配置。
$?库贝特尔?得到?节点
NAMESTATUS?ROLESAGE?版本
node1?现成大师?3mv1.14.5-k3s.1
注意:正如我们在快速入门(https://k3s.io/)中看到的,添加额外的节点并不复杂。它基本上只需要从主服务器上的/var/lib/ranger/K3s/server/node-token中获取一个令牌,使用以下命令连接其他节点:
$?卷曲?-sfL?https://get.k3s.io?|?K3S_URL=https://myserver:6443?K3S_TOKEN=XXX?嘘?-
Gitlab中的集成
现在让我们获取在Gitlab项目中集成新k3s集群所需的所有信息。
集群名称:k3s
API服务器的URL:在配置文件中,API服务器被指定为:https://localhost:6443。为了从外部访问,我们需要提供node1外部的IP地址。
集群ca证书:为了给Gitlab提供一个集群CA证书,我们需要对配置中指定的文件进行解码(就像在base 64中一样)。
$?库贝特尔?配置?观点?-生的?\\\\
-o=jsonpath=\\\'{。clusters[0]. cluster . certificate-authority-data } \ \ \ '\\\\
|?base64?-解码
服务令牌
获得标识令牌的过程包括几个步骤。我们首先需要创建一个ServiceAccount,并为它提供一个集群管理角色。以下命令可以完成这些步骤:
$?猫?EOF?|?库贝特尔?申请?-f?-
apiVersion:第五颅神经的眼支
善良:服务帐户
元数据:
姓名:git lab-管理
命名空间:kube系统
-
apiVersion:rbac.authorization.k8s.io/v1beta1
善良:ClusterRoleBinding
元数据:
姓名:git lab-管理
roleRef:
apiGroup:rbac.authorization.k8s.io
善良:集群角色
姓名:集群管理
主题:
-?善良:服务帐户
姓名:git lab-管理
命名空间:kube系统
文件结束
创建服务帐户时,我们检索相关类型secret的资源:
$?SECRET=$(kubectl?-n?kube-系统?得到?秘密?|?grep?gitlab-admin?|?awk?\ \ \ ' {打印?$1}\\\')
下一步是提取与秘密相关联的JWT令牌:
$?TOKEN=$(kubectl?-n?kube-系统?得到?秘密?$秘密?-哦?jsonpath=\\\'{.data.token}\\\ '|?base64?-解码)
$?回声?$TOKEN
我们已经完成了所有的设置。现在,让我们回到先前打开的选项卡,开始使用所有信息,并填写Gitlab【添加现有集群】表单的字段:
集群集成后,我们可以直接从web界面安装helm(Kubernetes包管理器)。
现在,我们可以从命令行检查tiller守护进程(helm的服务器端组件)是否正在运行。
$?库贝特尔?得到?部署?-所有名称空间?|?grep?舵柄
命名空间?名字准备好了吗?最新的?可用?年龄
git lab-托管-应用?舵柄展开。1/1?11?67s
集群现在可以使用了。此外,GitLab的Web界面允许一键安装其他组件:
入口控制器,公开集群中运行的服务。
证书管理器,使用Let\\\'s Encrypt来管理TLS证书。
Prometheus,监视集群中运行的应用程序。
创新,部署无服务器工作负载
总计?结
在本文中,我们学习如何创建k3s集群并将其集成到Gitlab项目中。当然,任何Kubernetes集群都可以使用相同的过程。
我们现在可以向项目添加各种资源:
源代码
Dockerfile,它指定如何从代码创建Docker映像。
Kubernetes资源,如部署、服务.
Gitlab-CI.yaml文件,它定义了CI管道和如何部署应用程序,并测试了相关的Kubernetes集群。
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。