tencent cloud

文档反馈

步骤1:TKE 集群侧及 Jenkins 侧配置

最后更新时间:2023-05-06 17:57:00

    TKE 集群侧配置

    此步骤中介绍了通过在 TKE 中自定义 RBAC 授权 ServiceAccount ,以及获取配置 Jenkins 时所需的集群访问地址、token 及集群 CA 证书信息。

    获取集群凭证

    说明
    当前集群需要开启内网访问。详情见 Service 控制台操作指引
    1. 使用以下 Shell 脚本,创建测试命名空间 ci、ServiceAccount 类型的测试用户 jenkins 并获取集群访问凭证(token)认证。
    # 创建测试命名空间ci
    kubectl create namespace ci
    # 创建测试 ServiceAccount 账户
    kubectl create sa jenkins -n ci
    # 获取 ServiceAccount 账户自动创建的 Secret token
    kubectl get secret $(kubectl get sa jenkins -n ci -o jsonpath={.secrets[0].name}) -n ci -o jsonpath={.data.token} | base64 --decode
    2. 在测试命名空间 ci 创建一个 Role 权限对象资源 jenkins-role.yaml 文件。示例如下:
    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
    name: jenkins
    rules:
    - apiGroups: [""]
    resources: ["pods"]
    verbs: ["create","delete","get","list","patch","update","watch"]
    - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create","delete","get","list","patch","update","watch"]
    - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get","list","watch"]
    - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["get"]
    3. 创建一个 RoleBinding 对象资源 jenkins-rolebinding.yaml 文件。如下权限绑定表示,添加 ServiceAccount 类型的 jenkins 用户在ci 命名空间具有 jenkins(Role 类型)的权限。示例如下:
    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: RoleBinding
    metadata:
    name: jenkins
    namespace: ci
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: Role
    name: jenkins
    subjects:
    - kind: ServiceAccount
    name: jenkins

    获取集群 CA 证书

    1. 参考 使用标准登录方式登录 Linux 实例(推荐),登录目标集群的 node 节点。
    2. 执行以下命令,查看集群 CA 证书。
    cat /etc/kubernetes/cluster-ca.crt
    3. 请记录并保存查询所得证书信息。如下图所示:
    

    授权 docker.sock

    TKE 集群中的每个 node 节点系统里都有一个 docker.sock 文件,slave pod 在执行 docker build 时将会连接该文件。在此之前,需逐个登录到每个节点上,依次执行以下命令对 docker build 进行授权:
    chmod 666 /var/run/docker.sock
    ls -l /var/run/docker.sock

    Jenkins 侧配置

    说明
    不同 Jenkins 版本使用 UI 上存在差异。您可以根据业务需要进行选择。

    添加 TKE 内网访问地址

    1. 参考 使用标准登录方式登录 Linux 实例(推荐),登录 Jenkins Master 节点。
    2. 执行以下命令,配置访问域名。
    sudo sed -i '$a 10.x.x.x cls-ixxxelli.ccs.tencent-cloud.com' /etc/hosts
    说明
    该命令可在集群开启内网访问后,从集群基本信息页面中的“集群APIServer” 中获取,详情请参见 获取集群凭证
    3. 执行以下命令,查看是否配置成功。
    cat /etc/hosts
    如下图所示即为配置成功:
    

    Jenkins 安装必备插件

    1. 登录 Jenkins 后台,选择左侧导航栏中的系统管理
    2. 在打开的“管理Jenkins” 面板中,单击插件管理
    3. 选择插件管理页面中可选插件,勾选 Locale、Kubernetes、Git Parameter 和 Extended Choice Parameter。
    Locale:汉化语言插件,安装该插件可使 Jenkins 界面默认设置为中文版。
    Kubernetes:Kubernetes-plugin 插件。
    Git ParameterExtended Choice Parameter:用于构建打包时传参。以 Kubernetes 插件为例,如下图所示:
    
    
    
    4. 勾选上述插件后单击直接安装,并重启 Jenkins 即可。

    开启 jnlp 端口

    1. 登录 Jenkins 后台,选择左侧导航栏中的系统管理
    2. 在打开的“管理Jenkins” 面板中,单击全局安全配置
    3. 在全局安全配置页中,设置入站代理的 TCP 端口为“指定端口 50000”。
    4. 其他配置项保持默认状态,并单击页面下方的保存

    添加 TKE 集群 token

    1. 登录 Jenkins 后台,选择左侧导航栏中的凭据 > 系统
    2. 在打开的“系统”面板中,选择全局凭据 (unrestricted)
    3. 在“全局凭据 (unrestricted)”页中,单击左侧菜单栏中的添加凭据,根据以下提示设置凭据基本信息。
    类型:选择Secret text
    范围:默认为全局(Jenkins,nodes,items,all child items,etc)
    Secret:填写 获取集群凭证 步骤中获取的 ServiceAccount jenkins 的 Token
    ID:默认不填写。
    描述:填写该凭据相关信息,该内容将被显示为凭据名称及描述信息,本文以 tke-token 为例。
    4. 单击确定即可添加,添加成功后该凭据将显示在凭据列表中。如下图所示:
    

    添加 gitlab 认证

    1. 在“全局凭据 (unrestricted)”页中,单击左侧菜单栏中的添加凭据,并根据以下提示设置凭据基本信息。
    类型:选择Username with password
    范围:默认为全局(Jenkins,nodes,items,all child items,etc)
    用户名:gitlab 用户名。
    密码:gitlab 登录密码。
    ID:默认不填写。
    描述:填写该凭据相关信息,该内容将被显示为凭据名称及描述信息,本文以 gitlab-password 为例。
    2. 单击确定即可添加成功。

    配置 slave pod 模板

    1. 登录 Jenkins 后台,选择左侧导航栏中的系统管理
    2. 在打开的“管理Jenkins” 面板中,单击系统配置
    3. 在“系统配置”面板最下方,选择“云”模块下的新增一个云 > Kubernetes
    4. 单击 Kubernetes Cloud details...,设置 Kubernetes 以下基本信息。 主要参数配置如下,其余选项请保持默认设置:
    名称:自定义,本文以 kubernetes 为例。
    Kubernetes 地址:TKE 集群访问地址,可参考 获取集群凭证 步骤获取。
    Kubernetes 服务证书 Key:集群 CA 证书,可参考 获取集群 CA 证书 步骤获取。
    凭据:选择 添加 TKE 集群 token 步骤中已创建的凭据 tke-token,并单击连接测试。若连接成功则会提示 Connection test succeessful。
    Jenkins 地址:填写为 Jenkins 内网地址,例如http://10.x.x.x:8080
    5. 选择Pod Templates > 添加 Pod 模板 > Pod Templates details...,设置 Pod 模板基本信息。 主要参数信息如下,其余选项请保持默认设置:
    名称:自定义,本文以 jnlp-agent 为例。
    标签列表:定义标签名称,构建时可根据该标签选择 Pod ,本文以 jnlp-agent 为例。
    用法:选择尽可能的使用这个节点
    6. 在“容器列表”中,选择添加容器 > Container Template,设置以下容器相关信息。
    名称:自定义容器名称,本文以 jnlp-agent 为例。
    Docker 镜像:输入镜像地址 jenkins/jnlp-slave:alpine
    工作目录:保持默认设置,请记录工作目录,将用于 shell 脚本处构建打包。
    其余选项保持默认设置即可。
    7. 在“卷”中按照以下步骤添加卷,为 slave pod 配置 docker 命令。
    7.1 选择添加卷 > Host Path Volume,主机和挂载路径均填写 /usr/bin/docker
    7.2 选择添加卷 > Host Path Volume,主机和挂载路径均填写/var/run/docker.sock
    7.3 单击页面下方的保存,即可完成 slave pod 模板配置。

    下一步操作

    请前往 步骤2:Slave pod 构建配置 创建新任务及配置任务参数。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持