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