我正在尝试在 OpenShift Developer Sandbox 上部署几个 Quarkus Camel 微服务。当它们在 Minikube 本地部署时按预期工作,但是在 Openshift 上,我不断收到以下异常:“部署配置没有最低可用性。”
我正在使用以下命令进行部署:
mvn -Dkubernetes.deployment.target=openshift clean package
之后,我有:
$ oc get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/aws-camelk-jaxrs ClusterIP 172.30.3.73 <none> 80/TCP 50m
service/modelmesh-serving ClusterIP None <none> 8033/TCP,8008/TCP,8443/TCP,2112/TCP 4d22h
NAME REVISION DESIRED CURRENT TRIGGERED BY
deploymentconfig.apps.openshift.io/aws-camelk-file 0 1 0 image(aws-camelk-file:1.0.0-SNAPSHOT)
deploymentconfig.apps.openshift.io/aws-camelk-jaxrs 0 1 0 image(aws-camelk-jaxrs:1.0.0-SNAPSHOT)
deploymentconfig.apps.openshift.io/aws-camelk-s3 0 1 0 image(aws-camelk-s3:1.0.0-SNAPSHOT)
deploymentconfig.apps.openshift.io/aws-camelk-sqs 0 1 0 image(aws-camelk-sqs:1.0.0-SNAPSHOT)
NAME IMAGE REPOSITORY TAGS UPDATED
imagestream.image.openshift.io/aws-camelk-file default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/annelies-dev/aws-camelk-file
imagestream.image.openshift.io/aws-camelk-jaxrs default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/annelies-dev/aws-camelk-jaxrs
imagestream.image.openshift.io/aws-camelk-s3 default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/annelies-dev/aws-camelk-s3
imagestream.image.openshift.io/aws-camelk-sqs default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/annelies-dev/aws-camelk-sqs
并且既没有运行的 Pod,也没有部署。在微服务构建过程中,我收到以下警告:
[WARNING] [io.quarkus.kubernetes.deployment.KubernetesDeployer] A Kubernetes
deployment was requested, but the container image to be built will not be pushed
to any registry because "quarkus.container-image.registry" has not been set. The
Kubernetes deployment will only work properly if the cluster is using the local
Docker daemon. For that reason 'ImagePullPolicy' is being force-set to
'IfNotPresent'.
这并不让我担心,因为图像是本地的。
我在这里做错了什么?
我希望关联的部署和 Pod 正在运行。
这是描述命令的输出:
$ oc describe deploymentconfig.apps.openshift.io/aws-camelk-file
Name: aws-camelk-file
Namespace: annelies-dev
Created: 28 hours ago
Labels: app.kubernetes.io/name=aws-camelk-file
app.kubernetes.io/version=1.0.0-SNAPSHOT
app.openshift.io/runtime=quarkus
Annotations: app.openshift.io/vcs-url=<<unknown>>
app.quarkus.io/build-timestamp=2023-09-13 - 09:43:24 +0000
app.quarkus.io/commit-id=a2883a70dd3968239e7e5b89a34622b5efcc4fd2
Latest Version: Not deployed
Selector: app.kubernetes.io/name=aws-camelk-file,app.kubernetes.io/version=1.0.0-SNAPSHOT
Replicas: 1
Triggers: Image([email protected], auto=true)
Strategy: Rolling
Template:
Pod Template:
Labels: app.kubernetes.io/name=aws-camelk-file
app.kubernetes.io/version=1.0.0-SNAPSHOT
app.openshift.io/runtime=quarkus
Annotations: app.openshift.io/vcs-url: <<unknown>>
app.quarkus.io/build-timestamp: 2023-09-13 - 09:43:24 +0000
app.quarkus.io/commit-id: a2883a70dd3968239e7e5b89a34622b5efcc4fd2
Containers:
aws-camelk-file:
Image: aws-camelk-file:1.0.0-SNAPSHOT
Port: <none>
Host Port: <none>
Environment:
KUBERNETES_NAMESPACE: (v1:metadata.namespace)
Mounts: <none>
Volumes: <none>
Latest Deployment: <none>
Events: <none>
我正在回答我自己的问题。
上述问题的原因是用于在 Openshift 上部署的
maven
命令。该命令应该是:
mvn -Dkubernetes.deployment.target=openshift clean install
而不是:
mvn -Dkubernetes.deployment.target=openshift clean package
因为
quarkus-maven-plugin
将 quarkus:deploy
目标绑定到 maven install
阶段。因此,运行 mvn package
只是实现 quarkus:build
目标,而不是 quarkus:deploy
。 Minikube 的情况似乎有所不同,其中 mvn package
足以完成 quarkus:build
和 quarkus:deploy
(不知道为什么)。
但是现在我自己解决了这个问题,我想表达我的失望,看看这个网站上的人们在多大程度上偏离了目标。
我几天前刚刚注册,这是我第一次在这里提问。我没有得到任何帮助,但相反,我的帖子被一个可怜的人否决了,他提供了一个无意义的建议,并且可能不喜欢我没有给他所有他认为我应该有的萨拉马莱克到.
然后,我发布了一条消息,询问谁否决了我的帖子以及为什么,但这条消息已被某人删除。我也向调解员举报了这一点,但没有任何人回应。
总之,我认为这个网站很糟糕,这里的人一定是社会弃儿,因此,我认为我不会在这里发帖。所以,大家好好睡吧,闭门不出,向内找,至于我,我不会再打扰你们了。