У меня есть определение CRD в Kubernetes. Когда я пытаюсь отправить запрос с kubectl proxy
по этой ссылке curl http://localhost:8090/apis/sparkoperator.k8s.io/v1alpha1/namespaces/default/sparkapplications/
, я получаю информацию о созданном объекте. Однако, когда я пытаюсь получить статус этого пользовательского объекта с помощью curl http://localhost:8090/apis/sparkoperator.k8s.io/v1alpha1/namespaces/default/sparkapplications/status
, я получаю сообщение об ошибке:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "sparkapplications.sparkoperator.k8s.io \"status\" not found",
"reason": "NotFound",
"details": {
"name": "status",
"group": "sparkoperator.k8s.io",
"kind": "sparkapplications"
},
"code": 404
Почему нет статуса для пользовательского объекта? Что-то не так с определением CRD?
Я использую версию Minikube v0.32.0, которую я запускаю следующим образом:
minikube start --kubernetes-version v1.13.0 --memory 8048 --cpus 3 --feature-gates=CustomResourceSubresources=true
Определение CRD выглядит следующим образом:
apiVersion: sparkoperator.k8s.io/v1alpha1
kind: SparkApplication
metadata:
name: spark-example
namespace: default
spec:
type: Scala
image: gcr.io/ynli-k8s/spark:v2.4.0-SNAPSHOT
mainClass: org.apache.spark.examples.SparkExample
mainApplicationFile: http://localhost:8089/spark_k8s_airflow.jar
mode: cluster
deps: {}
driver:
coreLimit: 1000m
cores: 0.1
labels:
version: 2.4.0
memory: 1024m
serviceAccount: default
executor:
cores: 1
instances: 1
labels:
version: 2.4.0
memory: 1024m
imagePullPolicy: Always
subresources:
status: {}
ОБНОВЛЕНИЕ: я специально вызвал объект spark-example, данные объекта возвращены, но вызов состояния возвращает ошибку.
curl http://localhost:8090/apis/sparkoperator.k8s.io/v1alpha1/namespaces/default/sparkapplications/spark-example/status
возвращает это сообщение:
the server could not find the requested resource
Хотя в определении CRD есть определение подресурсов.