Arm64在Kubernetes上运行KubeSphere DevOps
官方文档在 Kubernetes 上最小化安装 KubeSphere描述的安装方式在amd64平台安装是没有问题的,但是在arm64平台安装会出现拉取amd64架构镜像的问题。虽然macOS on Apple Silicon开启了Rosetta,但仍会出现devops无法运行的情况。
准备Kubernetes环境,确保kubectl可用,本文环境:
bash
% kubectl version
Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.1
部署KubeSphere DevOps
下载部署文件
bash
curl -LJO https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml
curl -LJO https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
编辑cluster-configuration.yaml
:
yaml
# 第101行
devops:
enabled: true # 改为true,开启devops
# 在spec:下 # FIXME: 实测不生效。
spec: # 补充如下内容
mc_repo: minio/mc
mc_tag: RELEASE.2022-07-29T19-17-16Z
minio_repo: minio/minio
minio_tag: RELEASE.2022-07-29T19-40-48Z
启动:
kubectl apply -f kubesphere-installer.yaml
kubectl apply -f cluster-configuration.yaml
http://127.0.0.1:30880,默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台。
编辑YAML:
将
kubesphere/ks-jenkins:v3.4.0-2.319.3-1
全部替换为
kubesphere/ks-jenkins:v3.5.0-2.346.3
此时Jenkins仍然无法启动,需要继续修改,前往应用负载
-工作负载
-devops-jenkins
-容器组
-devops-jenkins-xxxxxxxx-xxxx
-jenkins-casc-config
:
修改jenkins_user.yaml
文件:
注释掉如下内容(参考):
yaml
securityRealm:
ldap:
configurations:
- displayNameAttributeName: "uid"
mailAddressAttributeName: "mail"
inhibitInferRootDN: false
managerDN: "cn=admin,dc=kubesphere,dc=io"
managerPasswordSecret: "admin"
rootDN: "dc=kubesphere,dc=io"
userSearchBase: "ou=Users"
userSearch: "(&(objectClass=inetOrgPerson)(|(uid={0})(mail={0})))"
groupSearchBase: "ou=Groups"
groupSearchFilter: "(&(objectClass=posixGroup)(cn={0}))"
server: "ldap://openldap.kubesphere-system.svc:389"
disableMailAddressResolver: false
disableRolePrefixing: true
平滑重启devops-jenkins
:
bash
kubectl rollout restart deployment devops-jenkins -n kubesphere-devops-system
随后即可看到DevOps组件均为正常:
DevOps创建资源
遵循创建企业空间、项目、用户和平台角色说明创建如下资源。
- 以
admin
身份创建如下用户:
用户 | 指定的平台角色 | 用户权限 |
---|---|---|
ws-admin | platform-regular | 被邀请到企业空间后,管理该企业空间中的所有资源(在此示例中,此用户用于邀请新成员加入该企业空间)。 |
project-admin | platform-regular | 创建和管理项目以及 DevOps 项目,并邀请新成员加入项目。 |
project-regular | platform-regular | project-regular 将由 project-admin 邀请至项目或 DevOps 项目。该用户将用于在指定项目中创建工作负载、流水线和其他资源。 |
以
admin
身份创建企业空间demo-workspace,并将用户ws-admin
设置为企业空间管理员。以
ws-admin
身份登陆,在企业空间设置中,选择企业空间成员,然后点击邀请。邀请如下三位用户:
用户 | 分配的企业空间角色 | 角色权限 |
---|---|---|
project-admin | demo-workspace-self-provisioner | 创建和管理项目以及 DevOps 项目,并邀请新成员加入项目。 |
project-regular | demo-workspace-viewer | project-regular 将由 project-admin 邀请至项目或 DevOps 项目。该用户将用于在指定项目中创建工作负载、流水线和其他资源。 |
- 以
project-admin
身份登录控制台,在 DevOps 项目中,点击创建。输入 DevOps 项目名称(例如demo-devops
)。转到 DevOps 项目设置,然后选择 DevOps 项目成员。点击邀请授予project-regular
用户operator
的角色,允许其创建流水线和凭证。
DevOps使用
以 project-regular
身份登录控制台,即可在DevOps 项目中创建流水线。
创建凭证:
如果是GitHub凭证,直接填写用户名密码即可。如果GitHub账户开启了2FA,在密码处填写PAT。