|
|
楼主 |
发表于 2023-3-8 10:00:13
|
显示全部楼层
在线安装⚓︎5 ~& D' T) x I3 @; p! ]% \) B
1 环境要求⚓︎; m1 n7 ~9 E3 R( z* |3 M2 V
Kubernetes 1.20+; _9 M6 Z) v5 K$ Y
Helm 3.0. a5 M% D+ i: r, V5 K F* ?
2 安装部署⚓︎
3 a1 u2 J! l& X S2.1 添加 JumpServer 的 Helm 源地址⚓︎- G4 ?9 A/ N0 x0 {! t& j/ d
& l( f, u3 f* p$ f& K1 zhelm repo add jumpserver https://jumpserver.github.io/helm-charts
5 q% [7 v3 v( T2 O& B6 E4 Qhelm repo list
% `5 M& U" s, p, N$ V" I: n+ J3 L/ g2.2 编辑 JumpServer values.yaml 文件⚓︎
4 M3 ?* L5 L r# {8 j/ h3 H- v) M J" n% n4 B0 }% Q
vi values.yaml G; }& J" [6 n$ k8 n3 o
0 h( S( V) y2 ?# 模板 https://github.com/jumpserver/he ... pserver/values.yaml, f* j1 H' Y q( W8 w9 Z
# Default values for jumpserver.
( U( I. C u( S/ O# This is a YAML-formatted file.9 y3 E8 A: A+ Q4 b) ?( Z6 m
# Declare variables to be passed into your templates.! p) u4 U# h! z) m* v" j- w4 P
4 p Q4 _: }: z5 Y2 cnameOverride: ""
2 k9 g. @) |2 x# sfullnameOverride: ""
3 @0 ~! b& m* |9 K
( e7 x+ D% H; U$ U3 t0 Y2 M7 J! _1 o- V## @param global.imageRegistry Global Docker image registry/ O* D: |$ B% G0 h& T6 K5 j1 f1 |: S
## @param global.imagePullSecrets Global Docker registry secret names as an array% f! T: r1 H) ~2 A! ]
## @param global.storageClass Global StorageClass for Persistent Volume(s)8 |& L- A9 R- \9 O' E( Z6 f
## @param global.redis.password Global Redis™ password (overrides `auth.password`)- B1 X& ^5 @' E, q! a
##1 J8 t. O( \$ Z( X8 k. \
global:
3 K& _5 m5 m+ j' J4 _7 A imageRegistry: "docker.io" # 国内可以使用华为云加速
0 j( f( C# i c ?0 A% D# T. l imageTag: v3.0.3 # 版本号) l$ I- f8 Q' `7 k. ]4 T
## E.g.
$ d: R7 x4 e! ]0 W$ n" T* | # imagePullSecrets:! [* a' n( F2 D/ q7 E- {5 G) |* t6 Z& e
# - name: harborsecret
# s. l1 j4 v: Q1 {* `0 j, W5 c #
( h) A# v" S, E # storageClass: "jumpserver-data"
3 S, A) S# \1 O3 c! j: g ##
1 H5 A+ O1 ]( ?, g9 w* Q$ o/ ~ imagePullSecrets: []/ ~9 ?4 q% k2 O. q
# - name: yourSecretKey
/ S8 X S* l) W# X% X; [ storageClass: "" # (*必填) NFS SC
+ \# \/ M7 c+ G; U' y& C1 Q$ @* b) U. g p: Y: M
## Please configure your MySQL server first
3 ?: [0 U6 U7 ]+ n## Jumpserver will not start the external MySQL server.# @8 G) e- _' g6 d9 x3 p
##
6 g6 f- ~# N( v. DexternalDatabase: # (*必填) 数据库相关设置
8 r; i# G8 n: ?# c% \# W engine: mysql
3 z9 O h9 e7 @' }! w9 M host: localhost
# l. x" h+ S0 Y. U7 I8 M port: 3306
& H% @& Z5 v ? user: root6 O8 u) t( [$ {0 p* `
password: ""
( I; B4 D3 d' t/ }4 X database: jumpserver& T2 \$ @, S2 E
! j6 F6 V) A% P2 [6 E
## Please configure your Redis server first
) }6 E- @+ i2 X1 }0 p2 _## Jumpserver will not start the external Redis server.# e3 F- V% _ T$ s# @" {% ?& G$ J
##4 Y: `" u) z: L A& M+ T5 a! w, o
externalRedis: # (*必填) Redis 设置 O( ?6 J7 ?; y2 {6 t- n$ u
host: localhost( l/ Q' v, G) w1 F9 f
port: 6379
x& f/ i: ]1 h4 W: _ password: ""
9 n( d9 [# e! B1 o6 |7 V! B) F7 f4 S1 x2 t4 j' P3 W
serviceAccount:
G- @$ l% R7 Z3 M8 T, \ K # Specifies whether a service account should be created) t! J9 l6 m0 i! ?4 ]8 Y$ O6 y
create: false, e G- g, j4 k- }6 M b4 Z
# The name of the service account to use.
9 w0 B) [9 _& d& |. J# [0 f; g # If not set and create is true, a name is generated using the fullname template
( S, q) ]. d; B! e6 b name:' I, [" z0 h5 @8 j0 T/ N5 h# m8 _
$ [4 A: S+ d% G2 G7 L; u* o" X7 C
ingress:
k) @) N. \" r1 W2 ?# n- ? enabled: true # 不使用 ingress 可以关闭' N, F5 T& x9 ]( }& J+ r: \
annotations:* e4 z' ^2 ?' F+ r7 _9 O; x5 O/ k3 U
# kubernetes.io/tls-acme: "true"$ F) V" o" W" V/ Q* U" `* e
compute-full-forwarded-for: "true"
9 T F% O; @9 m! Q* s9 o. F use-forwarded-headers: "true"' _4 `$ a7 x" u, _# V; r$ i& u
kubernetes.io/ingress.class: nginx* v" u) d- r. [- T
nginx.ingress.kubernetes.io/configuration-snippet: |
8 v/ g2 I/ }/ e3 W; H proxy_set_header Upgrade "websocket";) L2 ]' d$ s) g U2 ?3 J
proxy_set_header Connection "Upgrade";
# z. V# G; `% S3 Z hosts:
6 t- X! I9 J1 x) K - "test.jumpserver.org" # 对外域名
( P8 I4 @6 n- I; e tls: []
" M" R- y. G' a1 h% g! ^: J$ T) f$ V0 J # - secretName: chart-example-tls
; e7 b4 [- e+ C, `- y0 E+ H) V # hosts:- I+ D4 y- P( Z( Q, V' N
# - chart-example.local1 H" D7 S6 H/ u5 e, |, q$ Q; z% E7 C
. \- A" k$ U- q/ q' Ucore:! ~' ?3 O& o5 Z$ O1 A) s
enabled: true
, |, ?8 i/ Y. Z7 V5 t* R/ `* i2 u9 X) X7 ~, K
labels: Q( b* M/ I5 M' G4 D+ W
app.jumpserver.org/name: jms-core# M2 G! J/ A2 E5 I1 M5 |2 P
. ?1 S: x3 Y6 W9 U config:" s- J! W: \& u, e4 z" d! J3 R
# Generate a new random secret key by execute `cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`
- z, O$ ? Q& j* u$ y/ o$ b # secretKey: "B3f2w8P2PfxIAS7s4URrD9YmSbtqX4vXdPUL217kL9XPUOWrmy"1 F& v9 l8 A$ D, p0 n$ O
secretKey: "" # (*必填) 加密敏感信息的 secret_key, 长度推荐大于 50 位
# y5 e" O0 O" }* n$ y # Generate a new random bootstrap token by execute `cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`
3 o& t( ], a% z* e$ L# T # bootstrapToken: "7Q11Vz6R2J6BLAdO"
% h+ g! }0 A/ ?% |( @ bootstrapToken: "" # (*必填) 组件认证使用的 token, 长度推荐大于 24 位
# U, P' s- y& h5 d/ c1 X # Enabled it for debug
' p7 J* ^1 O$ g$ j+ j; ]/ V. G# l G debug: false) X$ E; S0 c* c9 C4 Z, ?
log:8 [/ Z# {3 k1 L% ^/ K' J% J5 M
level: ERROR
' \/ k9 E% p6 J8 _2 V- S: X
3 G" ]( R: Y6 E5 U3 W$ ~( E replicaCount: 1
6 ^" w" S5 Y) b, S
: {! ^9 G" {1 ^) z image:) s- N7 h! S+ O
registry: docker.io
$ K5 I& H% ?0 d9 \ repository: jumpserver/core
; F5 I9 }, A+ p7 G$ O, }5 }- a6 ~% P tag: v3.0.3
# W* \3 a3 z2 c) h' L4 q3 h pullPolicy: IfNotPresent
8 G* o. m% ?1 j4 e7 p$ s
0 G1 g8 H' }- n) o$ ~ command: []
/ R5 a- T8 D7 J: x4 n- Y9 \3 P/ R% } w4 K, G
env:
' i# x7 t% t8 Q# ?% W0 F9 @+ G # See: https://docs.jumpserver.org/zh/master/admin-guide/env/#core' @% h4 t. Z" O# Y% l8 F
SESSION_EXPIRE_AT_BROWSER_CLOSE: true4 m r) @6 P' x* F' S& y# J. b
# SESSION_COOKIE_AGE: 864001 ]$ D; }+ M. @3 ^& P7 R8 T
# SECURITY_VIEW_AUTH_NEED_MFA: true* w2 \. |; W- C+ ^; O" b
' y. K- z, O4 Z4 t
livenessProbe:$ X& D; d5 F) r4 q, s: m
failureThreshold: 30' K$ }7 }3 l% V
httpGet:
) d8 R7 B+ ?! W* i- _ path: /api/health/: h2 ^. r3 u: w. z
port: web' _5 g5 P5 }' n" a$ z
- i6 H( ~) w: @- ? readinessProbe:
- R1 U; K# R3 X. c failureThreshold: 30
2 _3 K# J8 `9 b% r$ I8 e. A httpGet:) l5 D8 B4 l) x$ s5 j3 e+ A( X7 y
path: /api/health/, R1 S% o# u+ x
port: web7 k0 j# m" T# [ n
9 c2 {3 h1 K- u* I4 W" M
podSecurityContext: {}+ g5 f) o/ z; N# k
# fsGroup: 2000
9 u% J$ s" w/ s6 k5 @- h1 }3 N! V- P* G
securityContext: {}4 O) {" N# I- G8 {: F3 I
# capabilities:
: r% f8 ^7 O8 F4 @ # drop:
' o1 T! h4 d5 e # - ALL
! t6 K2 U$ r4 o% w8 X$ @4 E # readOnlyRootFilesystem: true
3 }( a: M9 }+ i) p+ F # runAsNonRoot: true
* {$ `9 Q' W3 h$ D3 E# t # runAsUser: 10001 m- K& I& Z! E6 f7 g
% T }7 {3 A. D7 S5 d1 K8 M* o- L/ P service:& s9 h2 a2 r+ B( a$ ~7 D( C
type: ClusterIP, e5 l1 T, g8 T/ ^4 T: I+ r( z
web:
& a$ `9 E7 r B1 h$ A2 b/ s/ i port: 8080( X! c) k) {. n- M- F- `. n" l
: m: H [ `: p8 n' I, N resources: {}6 z3 f; _9 t1 P% T" g3 e- x
# We usually recommend not to specify default resources and to leave this as a conscious9 K; |& I! B7 |$ k% |# L1 r# |
# choice for the user. This also increases chances charts run on environments with little
% B# S: g+ Y+ l- B4 F3 a # resources, such as Minikube. If you do want to specify resources, uncomment the following: z% L/ s) q8 i L C
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
* c) d0 c6 [) z # limits: q, C- u! ~# C. r3 ^; U/ ?8 @6 m+ ?
# cpu: 1000m ^+ R/ W! s% n- H- q3 _# d' v
# memory: 2048Mi
4 K/ ^: G# y6 F2 S e: Q # requests:; y6 w2 j" q1 n7 ]. e3 m' X
# cpu: 500m( ]! h q: l+ l! x2 u
# memory: 1024Mi% r- I6 m" J5 m# _, {6 a* @
8 [! f; n" w8 X* l
persistence:1 \' i) Z# x% @
storageClassName: jumpserver-data+ i5 |; ~/ t# x: [ R9 O
accessModes:/ y/ `9 x: W* @5 e" D: u
- ReadWriteMany
0 T/ Q! Y& d9 w" j5 R size: 100Gi
1 Z1 R6 [; c3 _/ r4 x # annotations: {}
/ k" z8 _% @& E0 F finalizers:- x$ i& a& U0 z( e2 \9 D6 O& d
- kubernetes.io/pvc-protection
* m0 I0 K: M0 E& c% }6 T # subPath: ""
) b8 b3 {; j! U # existingClaim:
: B) C# k- M4 @0 ] a9 a$ S* T8 ?0 l0 Z. ?8 T. H2 I
volumeMounts: []- [% |; K" d& h7 t
- _3 h# Q% c4 X% I8 o& V volumes: []
2 G" M% C, I7 ]) V/ ?+ o
, z$ H& n4 G6 A" Y nodeSelector: {}3 B4 g, ?, U4 l; y' C% ~5 ]& x
) l) v. J' w7 x8 @
tolerations: []
3 m) i; y: [7 P* W0 P4 \ p5 y
affinity: {}: ^ P+ G2 E9 j" s+ }, N% w) S
' j/ p+ p0 P: A# X- B( skoko:
E; b# V! u5 W1 p$ r' |1 G. ^ enabled: true+ B: f3 f, }* r
2 {- K, p$ f* B Y3 g3 }
labels:
' ]3 e( p% B+ L. B6 D" _8 n app.jumpserver.org/name: jms-koko+ e! [1 ]- w5 ^* v: n
2 m& ]1 \2 |7 T% b
config:
# D: {2 f5 K: ]4 Z$ Q log:
6 L! m2 r! X7 D9 C1 T' V" \ level: ERROR2 k0 o4 Z4 l' D( j) k# s
" `" `6 U z( P( N r" q
replicaCount: 1- K8 m" X/ ?0 N5 ~
5 u- c6 N7 Z, B" D, q image:/ [4 u, J, m: b- J: u' G
registry: docker.io2 Q" b+ a( x% Z, o) ~8 \
repository: jumpserver/koko
- o+ r/ q; g7 n7 T) B0 l0 ? tag: v3.0.30 N1 d5 J$ Y8 g8 J, N
pullPolicy: IfNotPresent8 G1 p- Y1 n* B* D# e0 P
% @5 c* \" B) T E* V. N: S; Z command: []3 w: r3 o4 t o
3 V. a( n# l1 p3 p9 @
env: []4 \( Z3 m4 ~( z @4 o# Z8 ]
# See: https://docs.jumpserver.org/zh/master/admin-guide/env/#koko1 N5 H: w" }8 X! c/ D o
# LANGUAGE_CODE: zh9 ^$ p1 E3 M7 `6 A, U1 J$ k5 B
# REUSE_CONNECTION: true( W( {- p: q7 D
# ENABLE_LOCAL_PORT_FORWARD: true: H* h1 p$ _+ Q0 L: m1 X# K4 I* ~
# ENABLE_VSCODE_SUPPORT: true- g& A' N* i8 S& d; F
. h/ F! i% q8 p) p livenessProbe:' E, D! `( c1 i7 A
failureThreshold: 30
, @, h- B$ }! d+ k httpGet:
! B7 j, ?" n5 m( O. E path: /koko/health/4 W) f$ g* d9 V$ G/ v, k" S' q
port: web
0 n6 n; d; W6 D0 W+ q) M
, g/ l9 Y) e2 N9 r5 H readinessProbe:4 b0 K# j8 k% V7 M% w2 X
failureThreshold: 305 ~9 O9 Y4 v8 O' b0 A) M8 ^. b
httpGet:* k7 q. L" a: ^9 r
path: /koko/health/& s0 f% L2 Z( N1 d( m, P
port: web* K& @. }& l& V$ N& _2 Q# h
! t2 Z* U3 k0 v
podSecurityContext: {}
# X6 X" W& c9 U- O # fsGroup: 2000
2 ?, Z5 K2 p% d; U7 Z, {( c2 A7 C* e( t6 C7 G- V& D9 A
securityContext:3 g0 J7 Y' M% i3 O! X
privileged: true
2 s6 F0 @/ B2 M # capabilities:; {5 m6 x6 ^/ S( B5 v
# drop:9 ~7 i o) K' R s, C W1 Z; r9 q- Y
# - ALL& m" s* X7 S7 c4 L7 M' {
# readOnlyRootFilesystem: true
1 _% K( c% n! d+ E5 f" |; _ # runAsNonRoot: true
9 v3 {+ N1 u) N% \ # runAsUser: 1000
' \' N [* J. x2 h1 u; h! ~& A* h
4 k0 b8 }+ t; G3 f% b. `/ ?; V, F6 o service:
! |9 ^, L Y: c& y5 \ type: ClusterIP3 f6 |$ _& x0 ]) ]5 A
web:
. ]1 q$ J! g4 k8 b# e* v" d7 u port: 5000! Y6 x6 F9 A) J) i
ssh:
9 r' j: W' @) U1 J& V port: 2222
4 y3 i/ P& H; w8 M2 [% h5 ]8 X: Q
resources: {}4 a' V- o$ I. t2 s" f
# We usually recommend not to specify default resources and to leave this as a conscious
* Z) {1 R* G- ?; ~: p! Q: D # choice for the user. This also increases chances charts run on environments with little* r b8 v' x3 W, l
# resources, such as Minikube. If you do want to specify resources, uncomment the following7 T7 Z/ O! C- B
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
4 _% f. n5 n& \; h) Q9 f # limits:
, D& d5 [3 B! A9 ]; z( E% ?" U% ] # cpu: 100m9 w) \% {+ T+ ]- n; d
# memory: 128Mi
* R. X( @7 F5 O' ] # requests:' J: I" W/ h6 r' t
# cpu: 100m) f( T" `6 E# g9 `$ P
# memory: 128Mi/ s: f! W' x8 q2 N
5 b6 r* i' b: W9 Y) w$ I9 B5 { persistence:0 L8 E% S- a+ d& g
storageClassName: jumpserver-data
! k) f; Q& R- O: _5 y, U' O' Y2 I+ R accessModes:
6 { i( g7 P. P2 I# @) C - ReadWriteMany1 T6 D1 a2 A: w' c3 d$ C3 e
size: 10Gi$ j1 C# }7 M; [7 `% |; k* u
# annotations: {}4 S/ T2 X& f7 G4 K) H
finalizers:
o) J5 r" s1 E Z* o' O+ L - kubernetes.io/pvc-protection
7 L* W# @% } E; z/ ?2 N q& J6 n, `9 r' y8 h- J |0 m
volumeMounts: []% V0 v1 [2 Q9 r6 Z) M7 V
$ G% A# U9 z' U6 N8 Y
volumes: []
# T# b( y6 k& C, P6 {) w" ~1 S: G) t( v
nodeSelector: {}( f y/ K* q' B" Z. x& p
- o/ D! ^6 u$ l) r5 [! e1 W tolerations: []6 X, l4 g) m2 p) D7 u
5 \1 n9 C) \! A% U: v7 O( [6 _ affinity: {}+ F5 [/ H9 F$ _* j: E
7 R) h+ J2 [' Q. G( wlion:4 v, h3 ~# C2 j
enabled: true
2 F; d+ U8 B( J& C& @* a* f x
9 ]7 |$ I1 r5 a+ x7 O labels:2 B4 `3 o' N4 c- k' y8 R4 t L
app.jumpserver.org/name: jms-lion" ~5 ^6 g% f, y$ g3 U
; i% ]! t; C+ {+ C! C0 h' s" {
config:
+ _1 C2 \% w1 @" p0 Z. K2 s log:4 R4 \' c9 e( U+ s
level: ERROR
3 }- Q; p' G0 J, j1 u6 O$ W$ h b4 d8 W/ p4 M) N, K
replicaCount: 13 G# ?2 }! u& q# L
1 v( S) Y. I% ]$ E# g; o2 z
image:
5 q6 s) _8 p! _" n7 o- Y registry: docker.io, M7 l9 K1 p) L6 B
repository: jumpserver/lion
6 g8 Q& A) v! r( X! n tag: v3.0.3
9 `) m/ M* L2 [6 d( H; t9 H% k. U pullPolicy: IfNotPresent
, N4 J' @- Q' E0 Q; B1 r7 X, i5 {. i! d
command: []3 [1 v2 Q" P; v, l
7 r& D# p, Y$ `& N$ a5 J
env:
7 o4 ?- S1 b2 `) k. J7 \* N # See: https://docs.jumpserver.org/zh/master/admin-guide/env/#lion% h! ~1 r# F: A9 i6 p) a, D
JUMPSERVER_ENABLE_FONT_SMOOTHING: true
" Z9 t) Q$ ]4 D" p. t # JUMPSERVER_COLOR_DEPTH: 325 D3 P4 y" U# L+ I( F3 v; H
# JUMPSERVER_ENABLE_WALLPAPER: true! ^- B. p$ \( Q1 Q* `3 m5 M, s/ q
# JUMPSERVER_ENABLE_THEMING: true
' i, Y' n% N; p' M6 r # JUMPSERVER_ENABLE_FULL_WINDOW_DRAG: true
" V& b2 E/ Y. C. Q- m # JUMPSERVER_ENABLE_DESKTOP_COMPOSITION: true
, W2 H+ }9 o) _6 f # JUMPSERVER_ENABLE_MENU_ANIMATIONS: true
) a( x! A% ?$ [( S$ S+ i7 ~ h7 d1 r% h3 M# F7 O
livenessProbe:
: T, G3 @& h* e/ P4 d, M$ b" O4 S failureThreshold: 30
$ M# h6 K1 U2 r# z$ U1 t- n httpGet:
, A9 L! h0 k9 Z( E path: /lion/health/
x0 Z& F, @ M0 v* A6 D port: web
9 a" D6 ^9 H d
: F; [3 K; {& j$ p readinessProbe:3 g3 n+ ]) ]" z3 i6 k0 ~
failureThreshold: 307 f# q" B J( }& q; ^6 _& R- W( p( }* [
httpGet:" D: W4 v* i; B$ a
path: /lion/health/
9 n _ E5 @. H+ x4 c$ i8 t port: web7 L( M& I, U8 o+ n
0 F; F6 G* I k. |8 D
podSecurityContext: {}. w7 m/ `4 W+ G" ^# h
# fsGroup: 2000
: _+ ?1 T: A% L6 r8 X: U; {* d
2 [# O, s4 M) i l securityContext: {}" a2 w+ C8 x: D! s
# capabilities:
5 G6 a ~ n, Y' p' v7 } # drop:) c; T: s' r( R3 a$ H
# - ALL
' R/ y% N2 H- Q$ }) r6 W1 O # readOnlyRootFilesystem: true
$ I! o1 ?+ A- C( ]& u1 P- f( a # runAsNonRoot: true g. F% {% k0 V; I5 g! i0 [4 Y
# runAsUser: 10005 R& K2 ^1 T0 P, `5 f; u7 F2 H
9 }- Z& q+ @2 }+ k
service:3 Y/ t0 \! n5 a$ A7 \
type: ClusterIP
7 }' j8 D8 R n5 U3 V4 L+ w5 X9 w! A web:
3 b2 K, X1 z1 f: N) n port: 80818 F- U+ I8 _8 w; @1 W3 k5 y
' l3 E; x/ Z. X/ l: }, A7 }+ F resources: {}8 H' R, g I J1 `- }: d
# We usually recommend not to specify default resources and to leave this as a conscious/ W0 @9 u1 \5 {) i
# choice for the user. This also increases chances charts run on environments with little
# y1 t' Z5 W' J2 c9 J9 H # resources, such as Minikube. If you do want to specify resources, uncomment the following
( W( c j3 K, \" P # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ y/ \7 S8 }- o& ~; c& ?. I # limits:
; n% ~, z3 B6 l! R9 F# | # cpu: 100m: o+ a& B B7 @' O- `
# memory: 512Mi1 v: j5 o1 b" a0 }) @
# requests:& p- r. C4 w# P( J0 X9 T( _: @6 a0 j
# cpu: 100m
8 O6 c6 Y- P& Z, ?; Y3 U. h$ ]# _ # memory: 512Mi
( A1 ~) b: G! D* o t ?' T [0 J% J/ X. J5 S
persistence:
/ j) K+ v$ u3 k$ \# H, ^ storageClassName: jumpserver-data
1 L5 r; A$ [; \5 x7 O accessModes:( K, K/ x9 e& N8 U0 R, H" {" Z
- ReadWriteMany
1 Z# v, F# t: [6 {+ C6 N size: 50Gi( v9 K8 p) G- s4 W" Z
# annotations: {}1 o* L) s$ O4 Y# E% ~
finalizers:
7 E. a; C ?% t: \& V! r" b: | - kubernetes.io/pvc-protection
+ [1 m/ b9 y8 [+ w0 a# `, a/ k; I l
volumeMounts: [], L: {; }' B% R) W( R
( p( A5 G8 w5 T4 U5 q) [' O f
volumes: []
7 \8 J* `- d1 ]. L: {4 |6 ~) M' V1 |6 g
nodeSelector: {}1 I6 P: [% V) L. @3 u5 Y' ]8 a. t
: d* N6 H( ? }* o$ ?7 j6 \9 v G1 U
tolerations: []) o- D$ R8 I) n; m" `3 k r# Q
$ O) N+ j" e: p; Q affinity: {}$ l& L" y& Q" C$ ?$ h# e; m
% a, U; D6 l" w5 ~. @) F; Pmagnus:% g/ i8 Y: \! ?
enabled: true9 a# p7 m8 c" ?* G* Y1 i$ x
) r7 o2 F6 U" h5 ~8 h) R labels:- H' W6 L- y' M- ^ D
app.jumpserver.org/name: jms-magnus
# X1 N% d: C1 L7 M; \+ B* j( B* R1 P! X# S$ @ k
config:
# j) ~: V0 X% j: w9 n6 l& G8 s log:1 _* T# ]: n8 S8 a+ [3 W) {% T1 C
level: ERROR
' c4 \& W* E. _9 g8 U# H( C
; } ?; z( q/ U* w0 z! X replicaCount: 1
$ X$ _# t `9 c: Q7 `$ }
1 U1 O$ v5 m% c$ C- _. s! ] image: M; y- [7 T6 x+ C
registry: docker.io
1 q0 X. P6 P4 R& o1 w: G repository: jumpserver/magnus
3 H6 ~/ v( T! t9 ? tag: v3.0.3
+ n& S+ D0 \5 S0 Z( y3 B pullPolicy: IfNotPresent8 c' q* e$ ?) f- D# H* d4 |1 _
7 T* s! E. Q2 v9 k command: []
4 T+ U ?- ?2 L) K+ D7 f7 e: M2 d& }
env: []; a. m: x" h& \4 ~3 O$ a- K
0 h) r* ^9 t# n( l livenessProbe:) }1 `3 O3 _* m7 d$ o2 h3 U
failureThreshold: 30
! `4 W# h* o+ S! t- e tcpSocket:# J; A X0 w" ~
port: 9090
! G k4 {; ^2 {! F2 e
; B9 |3 M+ g- l" t+ \ readinessProbe:* ^$ H# t8 m+ u8 C; g; }) j* l
failureThreshold: 30
' U5 b6 Y3 h, ]3 ?" n( o( v$ |' | tcpSocket:
. f4 N% `6 S" r4 d9 ? port: 9090
$ `) n0 f+ l2 `& h* Q$ r7 @- c8 h5 H6 J5 g% b) H `- {: }0 z# I
podSecurityContext: {}
+ C6 \& v9 Y8 M% b; V) z # fsGroup: 2000
G; ~! n7 B9 l, ` v
! F' N! ?/ r/ p( y% l! M5 I6 ^ securityContext: {}
5 |$ h# E r K: z8 M1 B # capabilities:3 H' u9 [& [! w7 ^0 Z; }1 o) u6 Z
# drop:% Y% A6 c& W9 [+ A i1 I, d3 O
# - ALL, _4 v; V# H5 S
# readOnlyRootFilesystem: true
. c) l9 u" @9 Z/ s6 w* X$ ` # runAsNonRoot: true
+ S& }( ?3 w# c- T% [2 C # runAsUser: 10002 \" | r7 y, j' K
8 Y% Y7 X) c& h2 K
service:% t% h* o: Z& R
type: ClusterIP
0 y: M8 g' `3 n. X8 d& C, v; l mysql:
! \; S* @0 G# f0 I6 l$ E port: 33061, C& O2 h8 E$ D4 I* }6 E
mariadb:4 H) @8 U8 ?+ K- }- h5 O! i$ `
port: 33062- r T1 l) c9 O+ L8 U
redis:
" C- _1 |; w8 z$ m- x/ ~ port: 637901 ?3 ^* ~; h* v% F9 v7 u0 d
postgresql:+ `1 S6 N! A# N) _4 U2 N
port: 543205 x+ T1 X& z* T6 w# D0 U
oracle:
7 v! u a5 O0 ~7 C9 F' {5 U6 }7 v ports: 30000-30100/ o6 Y/ {6 z, _+ q& n/ @: A- n; F
$ a, L4 i+ w% _9 h a+ A
resources: {}
0 j7 I; ]$ F& I$ W7 ^+ O& P # We usually recommend not to specify default resources and to leave this as a conscious9 T6 A! A3 v5 @4 r7 ~' S& S# l4 y
# choice for the user. This also increases chances charts run on environments with little, {# _4 O4 ^' n) y. ?
# resources, such as Minikube. If you do want to specify resources, uncomment the following
0 N( `$ e( L, m4 {$ m # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
@: x2 S& {0 X# Y9 E) F' c # limits:
: R z- P/ \4 e+ w0 Y2 p4 R # cpu: 100m
. `' S2 B" \: Y) }& q' U # memory: 512Mi
6 o4 p0 y( {5 N" K7 G! n # requests:& O2 B! h5 m, E6 h& }, B
# cpu: 100m
- G: `* E; I2 [* J0 W& | # memory: 512Mi$ Q& T8 o- |! s" M$ q
/ O% C# o5 [, t8 ~ persistence:
2 J4 s+ p4 e7 v2 ~0 q$ f5 c' b storageClassName: jumpserver-data$ ^. a$ O. O- _$ v- ~; j P
accessModes:/ T& V \& g9 K' E" e
- ReadWriteMany
( J. O$ V/ _, H size: 10Gi
; v' U; L; I! n) M2 h # annotations: {}
) q% K3 Z" U! q finalizers:( Y4 {% g% I+ {# l5 M% S+ D# l
- kubernetes.io/pvc-protection/ w% b* b- V( F+ V5 n. M
0 ?" ^& N# y8 V6 ]/ S. m volumeMounts: []
0 c# I2 D @/ X2 U+ x! O% `
/ l- A! d o6 j volumes: []
- k, p7 T9 ~7 H1 n5 i `/ g) N+ ?$ G2 q0 j( x1 H
nodeSelector: {}
- c! O* I$ v$ G% _! k6 m4 v0 [- U* m5 d' k8 V. k! t6 g
tolerations: []* h3 T8 `/ e) b3 w" `# X" u
+ o4 |* x( A; ^' I3 e# [& A9 W
affinity: {} G0 J8 \+ r& x/ S; b- [
2 Q5 U# B% V" fxpack:6 H( m2 F6 o4 T; P0 J! Q7 O
enabled: false # 企业版本打开此选项+ m* v+ n8 U7 E6 x9 R( P
$ E0 y V+ f9 u" n& bomnidb:% N: u& D6 i5 Y: e2 T
labels:
) C U* h2 j$ ~; f app.jumpserver.org/name: jms-omnidb; x' b2 r$ v8 O' I5 w3 r8 s
: U1 _5 c, J3 F" j$ |/ y
config:4 {$ j2 ~9 Y; Z- R2 x) B
log:
) A) T8 E" n1 t: t- ~ level: ERROR
2 J+ [% |7 F2 ]
4 @4 j" m8 T+ L/ Q/ @4 `2 [ replicaCount: 1) r' r' k1 P+ n& J+ S' g4 z
* O: D- I' k( V( ]& ~; z$ N2 y3 A& M
image:
" M j4 P" a! l* \1 ` registry: registry.fit2cloud.com2 l0 L0 i$ ?3 \7 _6 I- C. k
repository: jumpserver/omnidb
1 E8 o3 T, v% K* U tag: v3.0.3
# T' ^; D1 f8 S pullPolicy: IfNotPresent) T- _" R/ t( n# R9 E8 ~
4 f' ^+ E: k1 n8 f; o0 t" D& B command: []" M/ E1 }* t$ ^+ r: j
8 h% i- v# b5 i1 @1 t' ^ env: []
. a# S% `; Q1 B+ B9 p F# S2 ~
/ {6 }% v) {, k8 \+ o$ a! q livenessProbe:
, x! s: \$ z, T7 n. |- b2 i failureThreshold: 30
0 E( r' n) o' u. R- K/ b# q( R: I tcpSocket:+ [% x+ i8 ?3 q$ u$ O9 z5 k7 p
port: web
' ^* v6 T/ t& {0 ] {! ~9 \# G/ g9 Z y- S+ i1 F7 h9 W, d( ^
readinessProbe:
* m6 N" r% g8 z2 {2 l0 P failureThreshold: 30
2 M9 m/ W) G& p6 v3 ` tcpSocket:
/ _/ E$ B5 i7 h% H2 ^ port: web: O- O& `# d* u2 z% c& c
; t9 P, ^9 f8 v3 r# _ podSecurityContext: {}( T2 c6 s5 z! g5 Q, [7 M, \
# fsGroup: 2000
( P: P* h% M( O' W! I9 G9 |% w$ J E o% m
securityContext: {}
* ~# F- Y) ^: a9 j, X# ~ # capabilities:' Q. y% d% o ]) h9 s. ?
# drop:
" E7 e& U! R, M' `* ] # - ALL7 ~! |' b4 ^3 |
# readOnlyRootFilesystem: true
- E+ S( S5 u4 f0 D # runAsNonRoot: true
& `* I# b* c4 Z. e% m/ \5 }6 o # runAsUser: 1000
# V7 U o4 B2 z1 I! Z9 g& j# N/ _" e, u* |" S
service:
7 k" w0 h- e; p8 Q9 m2 x type: ClusterIP% U1 L/ ]: X; n2 W$ e9 T- ^4 M
web:
3 z* I8 c9 D; V7 u ? m port: 8082
6 c* v) |' y6 t4 C) v7 x" }/ E5 c2 T8 V% v2 k, c3 t. s& c
resources: {}: m5 i! [0 g4 v6 n8 J7 M R
# We usually recommend not to specify default resources and to leave this as a conscious/ P6 O2 t3 I) F6 F/ e
# choice for the user. This also increases chances charts run on environments with little
% Y# [- v5 ^0 a8 B: k) W # resources, such as Minikube. If you do want to specify resources, uncomment the following
9 \/ F% F( d, t* U9 p! v; _% A # lines, adjust them as necessary, and remove the curly braces after 'resources:'.0 Q# Z( V1 ?& A' R6 @4 u) c2 Z
# limits:, x" P2 e- r1 H# O
# cpu: 100m
% o# Q0 z& G2 G0 `! {6 x # memory: 128Mi
Y; K+ h! ]2 w # requests:
e. x; V( t' L, s # cpu: 100m: j0 Q/ U- I& o" |0 c% D; a$ [# Q
# memory: 128Mi" `, t4 m [) A, T1 }$ n
* v0 m6 r8 P4 |! ^6 n. i+ B# p persistence:. v) ?# }" x; b: J
storageClassName: jumpserver-data
# _% e: z0 D/ U) P- @ accessModes:8 D; z& s+ y6 X. g5 K. I
- ReadWriteMany, N5 J, l" \% R
size: 10Gi
7 u( |2 w, [! Q7 X" [) { # annotations: {} \; I! _9 F3 I! E5 q
finalizers:
+ z$ {: m6 p5 ?+ c; ?8 M - kubernetes.io/pvc-protection+ n% {# J6 p/ e2 j
8 ~4 u( `8 ~+ U9 r4 S# [! W volumeMounts: []* h2 o' G/ `, }! X1 {/ @1 t
' t" ], Q+ J5 e
volumes: []
4 e0 I8 E2 T' E! O, s: c Y6 i$ Y _" Y7 p1 Y7 \/ k
nodeSelector: {}9 _3 ~" ^" T3 R! A) j9 q: ]
6 s' |4 ?3 Y) E, K
tolerations: []
2 i; [% I+ _4 ~% p# g9 b! D {7 `% Z( x
affinity: {}
) N1 }; [6 z' {- `3 `. C: k, p- X" a7 I! Y1 H K: Y7 t
razor:, D+ J1 N2 m7 l
labels:4 U% q6 w5 _6 z3 s8 R( o9 J' ^, Y
app.jumpserver.org/name: jms-razor# w& f: N+ F7 [6 K. x w
% m2 Z# \0 O" ?, v# G& s" u
config:
2 h' M$ s8 i# c1 k$ \ log:
( I% S1 V. f$ I. ]0 H1 j level: ERROR- v0 |- I5 \! y- @
, I* C* U' O5 Y4 J: ?1 T
replicaCount: 1 }5 d5 \" c- r, v( v
2 C5 ?& J0 q! z5 E
image:* X$ Y6 f; p3 ~8 ?! {& @
registry: registry.fit2cloud.com2 V7 T& P* d t+ W
repository: jumpserver/razor# |1 C% I8 t2 s8 n+ B B" D
tag: v2.28.6
( {" c' ]! v, o- F) w pullPolicy: IfNotPresent
* Z5 q7 s1 H* E% R3 P
* D0 j: O7 W# j& H& N6 _" @ command: []1 U; |) U% V# t
/ N/ b7 m6 E' [) K7 ]0 E
env: []
1 ~' s" Q+ U$ L4 o3 t# S5 v$ B+ @: O) \+ `" R
livenessProbe:' P1 w8 z% L2 g' O, c: ] @
failureThreshold: 30
$ D5 E- J2 r, a: L' ] tcpSocket:7 q9 c* x3 g/ m" Q0 k1 F
port: rdp
Y+ K0 z; g, E$ S5 O# t! Q2 I
* u. O; N3 e+ m) m1 N readinessProbe:6 j/ h- C9 I4 Q
failureThreshold: 30 b; ~% `2 B$ a- L$ F- E/ K2 G j0 c
tcpSocket:- `; n1 Z% z+ R" ?8 m( |
port: rdp$ J. C3 b" y& y7 t, S7 V
) A. o$ B( u& S7 g9 j4 _ podSecurityContext: {}( I& n( T/ q" U4 k# R) J
# fsGroup: 2000
% y7 r" U9 |0 e; l5 A; z1 I0 I8 y1 C$ M5 Z; l3 J2 @) [
securityContext: {}
4 ^9 c/ `8 M ~9 l; r/ k # capabilities:9 l6 `5 N% M. W [' ^) |2 U4 v, q% E* r
# drop:2 J( M$ C! C- z3 s5 Y: L3 D
# - ALL
4 g. m9 b- t: T' K* v! z6 l # readOnlyRootFilesystem: true
$ B0 w h2 N' A: O/ c {; e # runAsNonRoot: true5 G' H: Y) A" f5 `; S- S
# runAsUser: 1000- q6 y5 Y4 l# d/ F% W
" G5 s. C( ?3 k' c* M8 a- A# }( ] service:( o( Q2 I" ^! X- i! f
type: ClusterIP
& w9 c, G- m5 {/ s+ l( S$ ~" ?, M rdp:
. z( k% p6 G/ F) L port: 33896 Y/ ]0 [ O7 B3 B" {
+ C& D9 `1 O: L0 w$ U resources: {}
1 R d1 X: F( o # We usually recommend not to specify default resources and to leave this as a conscious" h1 @/ I8 P3 {' W- I
# choice for the user. This also increases chances charts run on environments with little6 @2 u# T2 @. S! [0 [
# resources, such as Minikube. If you do want to specify resources, uncomment the following
( O0 h; F# A1 g3 k% Z! p # lines, adjust them as necessary, and remove the curly braces after 'resources:'.* ^3 R' _. P) E. E7 u8 y
# limits:( J+ U& n8 o; q, M' @ A2 Z' z
# cpu: 100m
% D7 J9 L8 s$ S% ]4 q # memory: 128Mi
" I7 @ Q4 l6 k4 Q: o7 q: b # requests:
2 u6 a1 i: Z" N/ f+ k0 ~5 u, a& u # cpu: 100m( \, K4 s0 [) g
# memory: 128Mi: r7 \" {2 r0 x1 b5 P4 _9 n
n k% Z7 |1 z. a1 f4 x* k
persistence:6 q" z9 |$ M2 O7 T" ]* h0 x/ S
storageClassName: jumpserver-data. Z$ ^% v( g/ g: d( S
accessModes:
* _% b, R/ [# N- L S - ReadWriteMany% O# `7 O; m. R) N; M+ \
size: 50Gi
1 C8 ]2 ]( x* ?, |0 U! o2 @2 Q # annotations: {}
- U0 J/ e! O% r4 N* K8 y! \ finalizers:. F% A5 B+ e- k5 u1 l3 c6 Q- _
- kubernetes.io/pvc-protection
/ G2 \' y6 m- V, e- Z3 b8 h5 S" s/ p8 D
volumeMounts: []+ i* ]% j5 C* e; C( N6 _
% k- B$ P" i# E2 L
volumes: []
' n+ [4 {+ P+ k: E4 @
8 ~) e1 g/ p ]# P nodeSelector: {}
+ g1 R1 |( I8 Y8 [
1 j* R* @0 U5 V1 P3 o9 a tolerations: []
/ @+ q) B/ }& P% E8 o* e
% w6 d2 p" u( _- s affinity: {}. ^7 Y# q/ o) M; V
7 ^8 i0 \( Z* c. O: ?7 W# V v
web:. L7 g3 E& p5 E7 Z
enabled: true
- n/ W! F; H$ o G2 m! K3 F7 [0 L2 ~. [2 S( h0 R* l
labels:* t) U% Z) e* Q2 _6 x2 u1 m" n
app.jumpserver.org/name: jms-web
; L( W; x3 {) C7 G/ h& F9 w
3 Q7 F" ?4 i) J8 t3 T replicaCount: 1! z) Y U7 x8 q; P N+ N3 ]3 F
* I( R3 S- `: T, V" g
image:+ Z+ h: z4 n Y! d, v; n
registry: docker.io
" Q0 c" i; ^! s* K& H repository: jumpserver/web
4 |0 [" R, \+ K n1 l7 o9 m+ @ tag: v3.0.3
6 T& V- F2 S- O( q0 ] pullPolicy: IfNotPresent
) U& N. M- c+ K* d5 X$ C" |6 `9 |& ]# E# i. X# U A7 [ ?# G; k
command: []
/ {0 H. _) a9 ?# i; \9 w `8 Z
) D$ x; _2 o. W: E1 T3 i1 i$ W env: []
$ X, h( r5 m: E # nginx client_max_body_size, default 4G
6 [: U. j: r" S1 C9 I9 A7 | # CLIENT_MAX_BODY_SIZE: 4096m
% I" T5 P3 P$ J! g$ F, n/ e: X x! ]% y! o' I8 d6 D
livenessProbe:" l& b5 E+ _- \$ k, b3 x4 e+ }
failureThreshold: 303 ?6 S6 w3 `2 [) e/ a8 _
httpGet:
& T [& t% ^; x path: /api/health/2 E1 k5 }' S4 D; k9 x: m
port: web
5 r9 Z6 n8 ^* ^% i0 Y9 w
- }5 J. \6 ]6 P2 z readinessProbe:
3 K0 S2 L& u8 V2 t0 k- _' j* ` failureThreshold: 30' z' S! ?5 e9 d8 i1 s# D3 E5 B2 L; H
httpGet:
; a( B3 p8 R/ }. A5 e. G path: /api/health/9 W6 {2 R, Q! j, }7 y4 _
port: web+ v6 B9 u/ a, ?- N. z, `
' Y0 E7 P# l; N
podSecurityContext: {}) Y% {) H: J5 A) \9 J3 K) C
# fsGroup: 2000
6 A7 x! S" I9 [0 I5 C3 u2 x4 Q* `& l; t' o5 h! k! x' R4 T1 p
securityContext: {}
a: k8 K" i, W4 t # capabilities:6 g4 e1 ~7 U- [0 S( N
# drop:
6 C: O% ?& c& d$ \$ A* A7 v- I # - ALL' [4 \9 T: \- X' A
# readOnlyRootFilesystem: true6 X) x7 | l) }
# runAsNonRoot: true; [+ f- d! M2 R- }; {. d O
# runAsUser: 1000( X( @9 D# ]( J$ v
% G0 j9 f Q! F" H3 `& Q
service:9 }9 g6 s1 U. b4 c6 `4 |! H
type: ClusterIP
& w/ e. @; D5 }9 |+ A web:, k# @1 \& ]9 B' p! X3 K+ }
port: 803 e' Q6 `2 }3 w0 G! s0 }7 j
9 e" Y9 x, x6 z( L, ?: c& b
resources: {}
% [) I7 |. c: f9 A5 s: j # We usually recommend not to specify default resources and to leave this as a conscious
/ d1 [* ?9 Y5 ]% W1 b3 d9 r" g # choice for the user. This also increases chances charts run on environments with little
7 }0 E. |& Y1 U% @ # resources, such as Minikube. If you do want to specify resources, uncomment the following
, e8 ~5 w& B7 X1 I; m& K0 n # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
b) G6 o3 V* `# F) r* I/ w # limits:
! w m { L7 x" g) q9 ? # cpu: 100m' I' N2 ?+ t; P- `
# memory: 128Mi& [$ V- j# }$ {, U$ k ]+ W
# requests:2 x _$ ~7 z7 C
# cpu: 100m
% L; j& I F0 o; g # memory: 128Mi
7 M7 O/ f/ t- r1 G# h
E0 R' w% M0 u" n persistence:* f) z. [! Z& `; {1 X* s+ C! A
storageClassName: jumpserver-data
# S# w# W0 }+ q4 n5 C# @ accessModes:
, |3 b' s) J$ y: |; A6 X7 j. J - ReadWriteMany
' W; c! F) g( b& P size: 1Gi, k" n% ]! f6 @6 ~, P) K
# annotations: {}) H4 u& d# c! ?% X
finalizers:
, a5 H1 s- z5 r - kubernetes.io/pvc-protection7 p- i7 [, K* C( t5 R: R
4 k/ t+ ^: i6 Y4 E- B: z7 Z
volumeMounts: []
# l4 u, Q: ~5 f# ]9 V" B2 \. q! q4 i. {5 ?* o# T( }% G
volumes: [] C. ~" M* i$ p# ]9 g7 g
9 j; o. D9 g! k! s/ g7 ]. ?9 R6 C/ |
nodeSelector: {}1 ~8 [8 |+ z% [
3 Q- E/ b' Z% {1 E* U tolerations: []4 y$ V, g& S& A/ z2 v& V7 g, m
$ @6 {' A6 K7 F0 n! o) I
affinity: {}0 }4 w k0 `' k
2.3 安装 JumpServer⚓︎
6 r: |: q( T' R4 Y
( @: m* ^6 ~4 ~' x8 @helm install jms-k8s jumpserver/jumpserver -n default -f values.yaml
0 n3 C& j: l4 L7 A% ~/ L9 P2.4 卸载 JumpServer⚓︎
& a- O6 [ S& W, G/ {7 J% k0 l( |# c/ c) c; W: M
helm uninstall jms-k8s -n default |
|