官方文档:

安装文档:https://blog.fit2cloud.com/?p=2659
功能列表:https://www.jumpserver.org/features.html
快速入门:https://docs.jumpserver.org/zh/master/admin-guide/quick_start/

准备持久化存储

我这里使用的是 nfs ,关于配置nfs动态存储卷可以参考官方文档或是

  1. [root@master conf.d]# kubectl get storageclasses
  2. NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
  3. local (default) openebs.io/local Delete WaitForFirstConsumer false 56d
  4. nfs-storage cluster.local/nfs-storage-nfs-client-provisioner Delete Immediate true 14d

在Kubernetes集群上面创建命名空间

# 创建命名空间
kubectl create ns jms

在Kubernetes集群上面创建MySQL

备注:若环境中有可用的MySQL数据库,可跳过此步骤。

# 使用 helm 安装 MySQL,并设置密码信息
# registry.kubeoperator.io:8082 是一个 Docker 私有仓库地址,可不设置默认使用 docker.io
# 添加 helm 仓库,需要连接外网
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

helm install jms-mysql bitnami/mysql -n jms \
--set global.storageClass=nfs-storage \
--set auth.rootPassword=GkijjN4PntV9Rb63 \
--set auth.database=jumpserver \
--set auth.username=jms \
--set auth.password=GkijjN4PntV9Rb63

storageClass:storageclass 名称 rootPassword:密码生成器生成的密码

在Kubernetes集群上创建Redis

备注:若环境中有可用的Redis,可跳过此步骤。

helm install jms-redis bitnami/redis -n jms \
--set global.storageClass=nfs-storage  \
--set auth.enabled=true \
--set auth.password=y9EjxS63agkxm2W8

nfs-storage storageclass 名称 y9EjxS63agkxm2W8 密码生成器生成的密码

在Kubernetes集群上创建JumpServer

准备Helm Chart 。JumpServer官方已经提供了Chart文件,我们只需要将项目下载到本地,略做修改之后便可以使用。

# 克隆 JumpServer helm/chart 代码
$ git clone https://github.com/jumpserver/helm.git

# 下面的helm要在这个目录下面执行
$ cd helm-charts-main/charts/jumpserver

$ ls
Chart.yaml  configs  README.md  templates  values.yaml

# 生成 JumpServer 的 secretKey
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50
# 生成 JumpServer 的 bootstrapToken
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16

# 使用 helm 安装JumpServer,并设置 MySQL 和 Redis 的连接信息。同时支持使用外部数据库
# 以下的 --set 操作也可以通过编辑 value.yaml 文件来代替


$ helm install jumpserver . -n jms \
--set core.config.secretKey=HORDhUHsnybiHUe8pVzD3jEnmLkEPQM6LF9wvdCO4syhz42Tpv \
--set core.config.bootstrapToken=CLlLMHlyaD9ptgcH \
--set global.storageClass=nfs-storage \
--set externalDatabase.engine=mysql \
--set externalDatabase.host=jms-mysql \
--set externalDatabase.port=3306 \
--set externalDatabase.user=jms \
--set externalDatabase.password=GkijjN4PntV9Rb63 \
--set externalDatabase.database=jumpserver \
--set externalRedis.host=jms-redis-master \
--set externalRedis.port=6379 \
--set koko.service.type=NodePort \
--set web.service.type=NodePort \
--set externalRedis.password=y9EjxS63agkxm2W8

查看安装情况
image.png

访问JumpServer

使用IP + 30798 在浏览器进行访问

image.png

卸载JumpServer

helm -n jms uninstall jms-mysql
helm -n jms uninstall jms-redis
helm -n jms uninstall jumpserver