我正在尝试在我的 kubernetes 部署 yaml 文件中传递 livenessProbe 以执行我的应用程序的运行状况。所以,我用令牌值创建了一个秘密,并按如下方式传递
livenessProbe:
httpGet:
path: test/actuator/health
port: 9001
httpHeaders:
- name: Authorization
valueFrom:
secretKeyRef:
name: actuator-token
value: token
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
error: error validating "deployment.yaml": error validating data: [ValidationError(Deployment.spec.template.spec.containers[0].livenessProbe.httpGet.httpHeaders[0]): unknown field "valueFrom" in io.k8s.api.core.v1.HTTPHeader, ValidationError(Deployment.spec.template.spec.containers[0].livenessProbe.httpGet.httpHeaders[0]): missing required field "value" in io.k8s.api.core.v1.HTTPHeader, ValidationError(Deployment.spec.template.spec.containers[0].readinessProbe.httpGet.httpHeaders): invalid type for io.k8s.api.core.v1.HTTPGetAction.httpHeaders: got "map", expected "array"]; if you choose to ignore these errors, turn validation off with --validate=false
请建议并感谢您的帮助。
另外让我们知道他们有什么更好的处理令牌的方法,因为我不想直接在我的部署 yaml 文件上提供令牌值。
目前,我们正在使用入口点构建 Docker 映像,并将该映像传递到 Kubernetes 部署。
有没有办法将入口点直接动态传递给 Kubernetes,以便它启动 Spring Boot 应用程序?
在 Kubernetes 中直接传递此入口点有哪些不同方法?
### Runtime image ###
FROM openjdk:8-jre-alpine
#Set working dir
WORKDIR /test
# Copy the executable JAR
COPY /*.jar /test/
# Run the app
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2> -jar *.jar
Run Code Online (Sandbox Code Playgroud) docker spring-boot kubernetes kubernetes-deployment kubernetes-pod