Я использую java-клиент Kubernetes-client для создания Развертываний в кластере Kubernetes. Это код
Deployment deployment = new DeploymentBuilder()
.withNewMetadata()
.withName("first-deployment")
.endMetadata()
.withNewSpec()
.withReplicas(3)
.withNewTemplate()
.withNewMetadata()
.addToLabels(namespaceID, "hello-world-example")
.endMetadata()
.withNewSpec()
.addNewContainer()
.withName("nginx-one")
.withImage("nginx")
.addNewPort()
.withContainerPort(80)
.endPort()
.withResources(resourceRequirements)
.endContainer()
.endSpec()
.endTemplate()
.endSpec()
.build();
deployment = client.extensions().deployments().inNamespace(namespace).create(deployment);
Я добавляю время ожидания в течение 3 мин, а затем проверяю состояние модуля
PodList podList = client.pods().withLabel(namespaceID, "hello-world-example").list();
System.out.println("Number of pods " + podList.getItems().size());
for (Pod pod : podList.getItems()) {
System.out.println("Name " + pod.getMetadata().getName()
+ " Status " + pod.getStatus().getPhase()
+ " Reason " + pod.getStatus().getReason()
+ " Containers " + pod.getSpec().getContainers().get(0).getResources().getLimits());
}
Это возвращает следующий sttaus
Name first-deployment-2418943216-9915m Status Pending Reason null Containers null
Name first-deployment-2418943216-fnk21 Status Pending Reason null Containers null
Name first-deployment-2418943216-zb5hr Status Pending Reason null Containers null
Однако из командной строки, если я получу kubectl get pods --all-namespaces
. Он возвращает состояние pod как запущенное. Я использую правильный API? что я пропустил?