java系统找不到指定文件怎么解决
272
2022-10-13
实操教程丨如何将一个k3s集群集成到Gitlab项目中
关于k3s
K3s是由Rancher Labs发布的一个轻量级Kubernetes发行版,这款产品专为在资源有限的环境中运行Kubernetes的研发和运维人员设计。
它是经过认证的Kubernetes发行版,其最低的系统要求为:
系统内核版本:Linux 3.10+每个Server最低RAM要求:512 MB每个节点RAM最低要求:75MB磁盘空间最低要求:200 MB支持的硬件架构:x86_64、 ARMv7、 ARM64
这些低配置的要求使得k3s非常适用于IoT相关的场景。
在GitLab中创建项目
在安装k3s之前,我们先在Gitlab上创建一个新的项目,称为api。
我们现在有两个选项:
在GKE上创建一个新的Kubernetes集群导入现有Kubernetes 集群的配置(无论这一集群在何处创建均可导入)
注意:在当前版本的GitLab中,新集群的创建仅限于GKE。
我们选择【Add existing cluster】这一选项卡。
在这一步中,我们需要填写几个字段来提供我们需要集成的集群配置。一直打开这个选项卡,暂时无需理会。现在,我们先去创建一个全新的Kubernetes集群。
创建一个k3s集群
我们现在将基于k3s启动一个Kubernetes集群。为什么是k3s呢?因为我想要表明设置它是多么容易。为了让步骤一目了然,我们仅仅设置一个节点的集群。
我已经配置了名为node1的Ubuntu 18.04服务器,我们在该主机上获得了一个shell之后,只需要运行以下命令来安装k3s,这是一个经过认证的Kubernetes集群。
root@node1:~ $ curl -sfL https://get.k3s.io | sh -
上面的命令类似于用于快速Docker安装的命令:
curl https://get.docker.com | sh
安装完毕之后,可以在/etc/rancher/k3s/k3s.yaml中找到连接到集群的配置文件。
root@node1:~ $ cat /etc/rancher/k3s/k3s.yaml apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tL...tCg== server: https://localhost:6443 name: default contexts: - context: cluster: default user: default name: default current-context: default kind: Config preferences: {} users: - name: default user: password: 48f4b...4b4e7 username: admin
本地kubectl将自动使用此配置。
$ kubectl get nodes NAME STATUS ROLES AGE VERSION node1 Ready master 3m v1.14.5-k3s.1
注意:正如我们看到的Quick Start那样(Server的URL:在配置文件中,API Server指定为:。为了从外部访问,我们需要提供node1 外部的IP地址。集群的CA证书:要向Gitlab提供集群CA证书,我们需要解码配置中指定的那个文件(就像它在base 64中一样)。
$ kubectl config view --raw \ -o=jsonpath='{.clusters[0].cluster.certificate-authority-data}' \ | base64 --decode
Service token
获取一个识别令牌的过程牵涉到几个步骤。我们首先需要创建一个ServiceAccount并且向它提供一个cluster-admin角色。以下命令可以完成这些步骤:
$ cat < 当service account创建完毕之后,我们检索关联的类型secret的资源: $ SECRET=$(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}') 下一步是提取与secret关联的JWT令牌: $ TOKEN=$(kubectl -n kube-system get secret $SECRET -o jsonpath='{.data.token}' | base64 --decode)
$ echo $TOKEN 我们已经完成了所有设置,现在回到之前打开的选项卡中,开始使用所有信息并填写Gitlab 【Add existing cluster 】表单的字段: 集群集成之后,我们可以直接从web界面安装helm(Kubernetes包管理器)。 现在,我们可以从命令行检查tiller 守护程序(helm的服务器端组件)是否运行。 $ kubectl get deploy --all-namespaces | grep tiller
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
gitlab-managed-apps tiller-deploy 1/1 1 1 67s 集群现在已经可以使用了。除此之外,GitLab的Web界面允许一键安装其他组件: Ingress Controller,暴露集群中运行的服务Cert-Manager,使用Let's Encrypt管理TLS证书Prometheus,监控运行在集群中 的应用程序Knative,部署Serverless工作负载 总 结 在本文中,我们了解如何创建一个k3s集群并且将其集成到一个Gitlab项目中。当然,任何Kubernetes集群都可以使用相同的过程。 我们现在可以添加各种资源到项目中: 源代码Dockerfile,指定如何从代码中创建Docker镜像Kubernetes资源,如部署、服务…….gitlab-ci.yaml文件,定义CI流水线以及如何部署应用程序并且针对相关Kubernetes集群进行测试
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~