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,可以发现多了两个副本

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

浙公网安备 33010602011771号