我正在尝试使用 helm 启动 WSO2 身份服务器,并且在 MAILTO 发送程序启动后服务器突然关闭。
我正在按照 wso2 文档here使用 helm 进行设置。
sql server 和一切都开始正常。当我查看身份服务器 Pod 的日志时,跟踪显示启动关闭挂钩的错误。没有其他信息说明其背后的原因。
以下是用于部署服务器的 helm 图表:
kind: StatefulSet
metadata:
name: wso2is-pattern-1-identity-server-statefulset
namespace: wso2local
uid: c00d52bc-d099-488b-9ff9-69cb7fbf7a99
resourceVersion: '76433'
generation: 5
creationTimestamp: '2022-09-01T10:03:30Z'
labels:
app.kubernetes.io/managed-by: Helm
annotations:
meta.helm.sh/release-name: wso2-test
meta.helm.sh/release-namespace: wso2local
managedFields:
- manager: helm
operation: Update
apiVersion: apps/v1
time: '2022-09-01T10:03:30Z'
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:meta.helm.sh/release-name: {}
f:meta.helm.sh/release-namespace: {}
f:labels:
.: {}
f:app.kubernetes.io/managed-by: {}
f:spec:
f:podManagementPolicy: {}
f:replicas: {}
f:revisionHistoryLimit: {}
f:selector: {}
f:serviceName: {}
f:template:
f:metadata:
f:annotations:
.: {}
f:checksum.is.bin: {}
f:checksum.is.conf: {}
f:labels:
.: {}
f:deployment: {}
f:monitoring: {}
f:spec:
f:containers:
k:{"name":"identity-server"}:
.: {}
f:env:
.: {}
k:{"name":"JVM_MEM_OPTS"}:
.: {}
f:name: {}
f:value: {}
k:{"name":"NODE_IP"}:
.: {}
f:name: {}
f:valueFrom:
.: {}
f:fieldRef: {}
f:image: {}
f:imagePullPolicy: {}
f:lifecycle:
.: {}
f:preStop:
.: {}
f:exec:
.: {}
f:command: {}
f:livenessProbe:
.: {}
f:failureThreshold: {}
f:httpGet:
.: {}
f:path: {}
f:port: {}
f:scheme: {}
f:periodSeconds: {}
f:successThreshold: {}
f:name: {}
f:ports:
.: {}
k:{"containerPort":9443,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:protocol: {}
k:{"containerPort":9763,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:protocol: {}
f:readinessProbe:
.: {}
f:failureThreshold: {}
f:httpGet:
.: {}
f:path: {}
f:port: {}
f:scheme: {}
f:periodSeconds: {}
f:successThreshold: {}
f:resources:
.: {}
f:limits:
.: {}
f:cpu: {}
f:memory: {}
f:requests:
.: {}
f:cpu: {}
f:memory: {}
f:securityContext:
.: {}
f:runAsUser: {}
f:startupProbe:
.: {}
f:exec:
.: {}
f:command: {}
f:failureThreshold: {}
f:periodSeconds: {}
f:successThreshold: {}
f:timeoutSeconds: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
f:volumeMounts:
.: {}
k:{"mountPath":"/home/wso2carbon/wso2-artifact-volume/repository/components/dropins"}:
.: {}
f:mountPath: {}
f:name: {}
k:{"mountPath":"/home/wso2carbon/wso2-config-volume/bin"}:
.: {}
f:mountPath: {}
f:name: {}
k:{"mountPath":"/home/wso2carbon/wso2-config-volume/repository/conf/deployment.toml"}:
.: {}
f:mountPath: {}
f:name: {}
f:subPath: {}
f:dnsPolicy: {}
f:initContainers:
.: {}
k:{"name":"init-is-db"}:
.: {}
f:command: {}
f:image: {}
f:imagePullPolicy: {}
f:name: {}
f:resources: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
k:{"name":"init-mysql-connector-download"}:
.: {}
f:command: {}
f:image: {}
f:imagePullPolicy: {}
f:name: {}
f:resources: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
f:volumeMounts:
.: {}
k:{"mountPath":"/mysql-connector-jar"}:
.: {}
f:mountPath: {}
f:name: {}
f:restartPolicy: {}
f:schedulerName: {}
f:securityContext: {}
f:serviceAccount: {}
f:serviceAccountName: {}
f:terminationGracePeriodSeconds: {}
f:volumes:
.: {}
k:{"name":"identity-server-bin"}:
.: {}
f:configMap:
.: {}
f:defaultMode: {}
f:name: {}
f:name: {}
k:{"name":"identity-server-conf"}:
.: {}
f:configMap:
.: {}
f:defaultMode: {}
f:name: {}
f:name: {}
k:{"name":"mysql-connector-jar"}:
.: {}
f:emptyDir: {}
f:name: {}
f:updateStrategy:
f:rollingUpdate:
.: {}
f:partition: {}
f:type: {}
- manager: kube-controller-manager
operation: Update
apiVersion: apps/v1
time: '2022-09-01T10:12:48Z'
fieldsType: FieldsV1
fieldsV1:
f:status:
f:collisionCount: {}
f:currentReplicas: {}
f:currentRevision: {}
f:observedGeneration: {}
f:replicas: {}
f:updateRevision: {}
subresource: status
- manager: node-fetch
operation: Update
apiVersion: apps/v1
time: '2022-09-01T11:22:16Z'
fieldsType: FieldsV1
fieldsV1:
f:spec:
f:template:
f:spec:
f:containers:
k:{"name":"identity-server"}:
f:livenessProbe:
f:timeoutSeconds: {}
f:readinessProbe:
f:initialDelaySeconds: {}
f:timeoutSeconds: {}
f:startupProbe:
f:initialDelaySeconds: {}
selfLink: >-
/apis/apps/v1/namespaces/wso2local/statefulsets/wso2is-pattern-1-identity-server-statefulset
status:
observedGeneration: 5
replicas: 1
currentReplicas: 1
currentRevision: wso2is-pattern-1-identity-server-statefulset-64cc67fc85
updateRevision: wso2is-pattern-1-identity-server-statefulset-57c444f47c
collisionCount: 0
availableReplicas: 0
spec:
replicas: 2
selector:
matchLabels:
deployment: wso2is
monitoring: jmx
template:
metadata:
creationTimestamp: null
labels:
deployment: wso2is
monitoring: jmx
annotations:
checksum.is.bin: cb0616cf02f9ede88abc214692596be0481794ba7c6437b96b5665949ba030eb
checksum.is.conf: a108b1792060c91aa6424fadc6626ea97c7b669be0fd05978a02fb89f0f2a537
spec:
volumes:
- name: identity-server-conf
configMap:
name: wso2is-pattern-1-identity-server-conf
defaultMode: 420
- name: identity-server-bin
configMap:
name: wso2is-pattern-1-identity-server-bin
defaultMode: 420
- name: mysql-connector-jar
emptyDir: {}
initContainers:
- name: init-is-db
image: busybox:1.31
command:
- sh
- '-c'
- >-
echo -e "Checking for the availability of MySQL Server
deployment"; while ! nc -z wso2is-mysql-db-service 3306; do sleep
1; printf "-"; done; echo -e " >> MySQL Server has started";
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: init-mysql-connector-download
image: busybox:1.32
command:
- /bin/sh
- '-c'
- >
set -e
connector_version=8.0.17
wget
https://repo1.maven.org/maven2/mysql/mysql-connector-java/${connector_version}/mysql-connector-java-${connector_version}.jar
-P /mysql-connector-jar/
resources: {}
volumeMounts:
- name: mysql-connector-jar
mountPath: /mysql-connector-jar
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
containers:
- name: identity-server
image: wso2/wso2is:5.11.0
ports:
- containerPort: 9763
protocol: TCP
- containerPort: 9443
protocol: TCP
env:
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: JVM_MEM_OPTS
value: '-Xms1024m -Xmx2048m'
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: '1'
memory: 2Gi
volumeMounts:
- name: identity-server-conf
mountPath: >-
/home/wso2carbon/wso2-config-volume/repository/conf/deployment.toml
subPath: deployment.toml
- name: identity-server-bin
mountPath: /home/wso2carbon/wso2-config-volume/bin
- name: mysql-connector-jar
mountPath: >-
/home/wso2carbon/wso2-artifact-volume/repository/components/dropins
livenessProbe:
httpGet:
path: /carbon/admin/login.jsp
port: 9443
scheme: HTTPS
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /api/health-check/v1.0/health
port: 9443
scheme: HTTPS
initialDelaySeconds: 100
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
startupProbe:
exec:
command:
- /bin/sh
- '-c'
- nc -z localhost 9443
initialDelaySeconds: 300
timeoutSeconds: 1
periodSeconds: 5
successThreshold: 1
failureThreshold: 30
lifecycle:
preStop:
exec:
command:
- sh
- '-c'
- ${WSO2_SERVER_HOME}/bin/wso2server.sh stop
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
securityContext:
runAsUser: 802
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
serviceAccountName: wso2is-pattern-1-svc-account
serviceAccount: wso2is-pattern-1-svc-account
securityContext: {}
schedulerName: default-scheduler
serviceName: wso2is-pattern-1-identity-service
podManagementPolicy: OrderedReady
updateStrategy:
type: RollingUpdate
rollingUpdate:
partition: 0
revisionHistoryLimit: 10
这是日志跟踪:
[2022-09-01 11:26:49,499] [] INFO {org.wso2.carbon.humantask.deployer.HumanTaskDeployer} - Initializing HumanTask Deployer for tenant -1234.
[2022-09-01 11:26:49,581] [] INFO {org.apache.axis2.transport.mail.MailTransportSender} - MAILTO Sender started
[2022-09-01 11:26:56,787] [] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Shutdown hook triggered....
[2022-09-01 11:26:56,782] [] INFO {org.wso2.carbon.bpel.core.internal.BPELServiceComponent} - Shutting down BPEL Server........
[2022-09-01 11:26:57,055] [] INFO {org.apache.ode.bpel.engine.BpelServerImpl} - BPEL Server Stopped.
[2022-09-01 11:26:57,077] [] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Gracefully shutting down WSO2 Identity Server...
[2022-09-01 11:26:57,143] [] INFO {org.wso2.carbon.core.ServerManagement} - Starting to switch to maintenance mode...
[2022-09-01 11:26:57,152] [] INFO {org.wso2.carbon.core.ServerManagement} - Stopped all transport listeners
[2022-09-01 11:26:57,155] [] INFO {org.wso2.carbon.core.ServerManagement} - Waiting for request service completion...
[2022-09-01 11:26:57,180] [] INFO {org.wso2.carbon.bpel.core.ode.integration.BPELServerImpl} - BPEL Server shutdown completed.
[2022-09-01 11:26:57,191] [] INFO {org.wso2.carbon.core.ServerManagement} - All requests have been served.
[2022-09-01 11:26:57,193] [] INFO {org.wso2.carbon.core.ServerManagement} - Waiting for deployment completion...
[2022-09-01 11:26:57,253] [] INFO {org.wso2.carbon.core.ServerManagement} - All deployment tasks have been completed.
[2022-09-01 11:26:57,255] [] INFO {org.wso2.carbon.core.ServerManagement} - Waiting for server task completion...
[2022-09-01 11:26:57,271] [] INFO {org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent} - Writing logs
[2022-09-01 11:26:57,486] [] INFO {org.wso2.carbon.humantask.core.HumanTaskServerShutdown} - Shutting down human task scheduler
[2022-09-01 11:26:57,540] [] INFO {org.wso2.carbon.core.ServerManagement} - All server tasks have been completed.
[2022-09-01 11:26:57,542] [] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Shutting down WSO2 Identity Server...
[2022-09-01 11:26:57,987] [] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Shutting down OSGi framework...
[2022-09-01 11:26:58,142] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Shutdown complete
对于容器来说,生命周期钩子定义如下。根据共享数据,容器似乎尚未在时间间隔内启动,并且已触发生命周期挂钩。
lifecycle:
preStop:
exec:
command:
- sh
- '-c'
- ${WSO2_SERVER_HOME}/bin/wso2server.sh stop
您可以移除探针并让容器先启动,或者您也可以调整探针配置。