Как в k8s развернуть модуль в контроллере репликации?

#kubernetes

#kubernetes

Вопрос:

 $ minikube version
minikube version: v1.16.0
commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18 ", GitVersion:"v1.18.9-eks-d1db3c", GitCommit:"d1db3c46e55f95d6a7d3e5578689371318f95ff9", GitTreeState:"clean", BuildDate:"2020-10-20T22:21:03Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:51:19Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
 

Я новичок в kubernetes.

Я пытаюсь следовать примерам из книги «Kubernetes в действии», которая была написана 2-3 года назад, поэтому я знаю, что информация в ней устарела.

Когда я запускаю эту команду, я получаю следующий вывод.

 $ kubectl run kubia --image=myrepo/kubia --port=8080 --generator=run/v1
Flag --generator has been deprecated, has no effect and will be removed in the future.
pod/kubia created
 

Модуль запускается, но предположительно должен быть создан контроллер репликации, но его нет.

 $ kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
kubia   1/1     Running   0          3m27s
$ kubectl get rc
No resources found in default namespace.
 

Все последующие команды зависят от создаваемого контроллера репликации, например, следующие

 $ kubectl scale rc kubia --replicas=3
 

Итак, как я могу создать контроллер репликации и заставить его управлять модулем? Или какова альтернатива созданию контроллера репликации, чтобы я мог масштабировать модуль?

Я знаю, что могу писать файлы конфигурации вместо использования CLI, но пока я слежу за книгой.

Комментарии:

1. Создайте развертывание .

2. Как сказано выше, вам необходимо создать развертывание для репликации. kubectl run будет создан только модуль. kubectl run -h ВОЗВРАТ Create and run a particular image in a pod.

3. Спасибо вам обоим, поставьте ответ.

Ответ №1:

Согласно комментарию Turing85, вот что я должен был сделать. Я переименовал kubectl в k.

 $ k create deploy kubia-deploy --image=myrepo/kubia
deployment.apps/kubia-deploy created

$ k get deploy
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
kubia-deploy   1/1     1            1           8s

$ k scale deploy kubia-deploy --replicas=3
deployment.apps/kubia-deploy scaled

$ k get po
NAME                            READY   STATUS    RESTARTS   AGE
kubia-deploy-68675b44f6-52rbb   1/1     Running   0          3m45s
kubia-deploy-68675b44f6-ddt8g   1/1     Running   0          3m45s
kubia-deploy-68675b44f6-np624   1/1     Running   0          4m42s

$ k expose deploy kubia-deploy --type=LoadBalancer --name kubia-http --port=8080
service/kubia-http exposed