实操教程丨如何将一个k3s集群集成到Gitlab项目中

云计算 关于k3s

系统内核版本:Linux 3.10+

创新互联建站长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为鸡东企业提供专业的网站建设、做网站鸡东网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

每个Server低RAM要求:512 MB

每个节点RAM低要求:75MB

磁盘空间低要求:200 MB

支持的硬件架构:x86_64、 ARMv7、 ARM64

在GitLab中创建项目

我们现在有两个选项:

在GKE上创建一个新的Kubernetes集群

导入现有Kubernetes 集群的配置(无论这一集群在何处创建均可导入)

注意:在当前版本的GitLab中,新集群的创建仅限于GKE。

在这一步中,我们需要填写几个字段来提供我们需要集成的集群配置。一直打开这个选项卡,暂时无需理会。现在,我们先去创建一个全新的Kubernetes集群。

创建一个k3s集群

root@node1:~ $ curl -sfL https://get.k3s.io | sh -

curl https://get.docker.com | sh

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 get nodes
NAME    STATUS ROLES  AGE VERSION
node1   Ready  master 3m  v1.14.5-k3s.1

$ curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
在Gitlab中集成

现在让我们获取在Gitlab项目中集成全新的k3s集群所需的所有信息。

集群名字:k3s

API Server的URL:在配置文件中,API Server指定为:https://localhost:6443 。为了从外部访问,我们需要提供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 <

$ SECRET=$(kubectl -n kube-system get secret | grep gitlab-admin | awk \'{print $1}\')

$ TOKEN=$(kubectl -n kube-system get secret $SECRET -o jsonpath=\'{.data.token}\' | base64 --decode)
$ echo $TOKEN

$ 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工作负载

总 结

源代码

Dockerfile,指定如何从代码中创建Docker镜像

Kubernetes资源,如部署、服务……

.gitlab-ci.yaml文件,定义CI流水线以及如何部署应用程序并且针对相关Kubernetes集群进行测试


标题名称:实操教程丨如何将一个k3s集群集成到Gitlab项目中
新闻来源:http://pwwzsj.com/article/cjoejh.html