Kubectl get deployments 显示在默认命名空间中找不到资源

Kubectl get deployments shows No resources found in default namespace

I am trying my hands on Kubernetes and I tried to deploy an image into k8s service

root@KubernetesMiniKube:/usr/local/bin# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
pod/hello-minikube created

root@KubernetesMiniKube:/usr/local/bin# kubectl get pod

NAME             READY   STATUS    RESTARTS   AGE
hello-minikube   1/1     Running   0          16s

root@KubernetesMiniKube:/usr/local/bin# kubectl get deployments

No resources found in default namespace.

为什么我看到找不到资源,但实际上默认命名空间中有一个资源 运行。

当您使用 $ kubectl run 时,它会创建一个 pod。 在您的示例中,这正是发生的情况,它创建了 pod,名为 hello-minikube

pod/hello-minikube created

如果要创建deployment

Deployments represent a set of multiple, identical Pods with no unique identities. A Deployment runs multiple replicas of your application and automatically replaces any instances that fail or become unresponsive.

你可以使用命令来完成:

$ kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
deployment.apps/hello-minikube created
user@cloudshell:$ kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
hello-minikube   1/1     1            1           8s

您还可以使用 YAML 创建 deployment。 从 this documentation example 保存 YAML 并使用 kubectl apply.

$ vi nginx.yaml 

<paste proper YAML definition. Also you can use nano editor, or download ready yaml>

user@cloudshell:$ kubectl apply -f nginx.yaml
deployment.apps/nginx-deployment created
$ kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
hello-minikube     1/1     1            1           3m48s
nginx-deployment   3/3     3            3           64s

如果您对此回答还有其他问题,请告诉我。