K8S-kubectl 常用命令(5)

创建一个 Pod

sudo kubectl run podName --image=imageName

用这个命令创建一个 Pod 已经被弃用,并在较新版本的 Kubernetes 中不再建议使用,ToLearn:规范的操作方法

ubuntu@k3s:~$ sudo kubectl run nginx --image=nginx
pod/nginx created
ubuntu@k3s:~$ sudo kubectl get pod
NAME    READY   STATUS              RESTARTS   AGE
nginx   0/1     ContainerCreating   0          5s
# 上面这个是正在创建的状态,创建完之后会变成 Running 
ubuntu@k3s:~$ sudo kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          5m4s

  也可以使用 creat 命令来创建想要的资源对象

ubuntu@k3s:~$ sudo kubectl create -h可以查看 create 命令相关的帮助文档

翻一翻可以看到,create 命令的资源对象里并没有 Pod,因为 Pod 是 Kubernetes 中最基本的资源对象,通常情况下我们并不会直接创建一个 Pod,而是创建一个 Pod 的上层资源对象

 现在我们来创建一个 Deployment,ubuntu@k3s:~$ sudo kubectl create deployment nginx-deployment --image=nginx

电脑性能不是很好的话 sudo kubectl get pod查看 Pod 可能新建的 Pod 会一直是 ContainerCreating 状态,不着急,耐心等一下,只要没报错,它会 Running 的。

ubuntu@k3s:~$ sudo kubectl get pod
NAME                                READY   STATUS              RESTARTS   AGE
nginx                               1/1     Running             0          137m
nginx-deployment-6d6565499c-xrkv9   0/1     ContainerCreating   0          2m31s

在 Deployment 和 Pod 之间还有一个中间层 ReplicaSet,用来管理 Pod 的副本数量,什么?副本?听着有点耳熟,看看前面对 Deployment 的介绍,好像明白了什么。

sudo kubectl get replicaset查看 replicaset 列表,注意看,这里有个字符串有点眼熟,这个 replicaset 的 ID 在前面查看的 Pod 里出现过。Pod Name 分为三个部分,自己起的名字、replica ID、Pod ID,所以 Deployment、ReplicaSet 和 Pod 三者的关系就是 Pod Ⅽ ReplicaSet Ⅽ Deployment,通过 Pod Name 中的 ReplicaSet ID 就可以知道这个 Pod 属于哪个 ReplicaSet,ReplicaSet Name 里也包含所属 Deployment 的 Name。

ubuntu@k3s:~$ sudo kubectl get replicaset
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-6d6565499c   1         1         0       3m20s

  replica 就是副本的意思

ReplicaSet 并不用我们手动创建,而是通过 Deployment 来完成各种配置和管理。

通过 Deployment 指定副本数量

sudo kubectl edit deployment nginx-deployment打开 Deployment 的配置文件,找到 replicas,把值改为 3。

 退出后查看一下 Pod,可以发现多了两个副本

 这个方式不是很稳妥的方式,了解即可

 

posted @ 2025-07-11 21:22  arroa  阅读(9)  评论(0)    收藏  举报