网站制作前的图片路径,自动的微信小程序开发,专业网站设计制作,做网站生意买螃蟹Kubernetes#xff08;k8s#xff09;#xff1a;精通 Pod 操作的关键命令 1、查看 Pod 列表2、 查看 Pod 的详细信息3、创建 Pod4、删除 Pod5、获取 Pod 日志6、进入 Pod 执行命令7、暂停和启动 Pod8、改变 Pod 副本数量9、查看当前部署中使用的镜像版本10、滚动更新 Pod11… Kubernetesk8s精通 Pod 操作的关键命令 1、查看 Pod 列表2、 查看 Pod 的详细信息3、创建 Pod4、删除 Pod5、获取 Pod 日志6、进入 Pod 执行命令7、暂停和启动 Pod8、改变 Pod 副本数量9、查看当前部署中使用的镜像版本10、滚动更新 Pod11、导出 、导入Pod 的配置1、导出配置到文件2、导入配置文件到集群 12、查看 Pod 的 CPU、内存 使用情况13、端口转发 The Begin点点关注收藏不迷路 Kubernetes 是一个强大的容器编排平台其中的核心概念之一就是 Pod。Pod 是 Kubernetes 中最小的可部署单元它由一个或多个容器组成共享网络和存储资源。 在本篇博客中我们将深入探讨 Kubernetes 集群中与 Pod 相关的一些重要命令帮助更好地管理和调试的容器应用。 1、查看 Pod 列表
要查看集群中所有 Pod 的列表可以使用以下命令
kubectl get pods此命令将列出当前命名空间中所有 Pod 的名称、状态、所在节点和创建时间等信息。 2、 查看 Pod 的详细信息
要查看特定 Pod 的详细信息可以使用以下命令
kubectl describe pod pod_namekubectl describe pod nginx-deployment-544dc8b7c4-ds6b5这将显示有关该 Pod 的更详细的信息包括容器状态、事件、标签和注释等。 3、创建 Pod
可以使用 kubectl create --help 命令来查看关于 kubectl create 命令的帮助信息和可用选项。 kubectl create --help1、方式一
从 Kubernetes 版本 1.18 开始kubectl create pod 命令已经不再建议使用因为它创建的 Pod 缺少一些默认配置如控制器。
建议使用 kubectl run 或者编写 YAML 文件来创建 Pod。
如果想使用 kubectl 命令行直接创建一个简单的 Pod可以使用 kubectl run 命令。例如
kubectl run my-pod --imagenginx --restartNever这将创建一个名为 my-pod 的 Pod使用 nginx 镜像 Never 表示当 Pod 终止后不会被自动重启。 --restartAlways 会自动重启容器 2、方式二
创建 Deployment 时指定副本数量使用 --replicas 标志。
kubectl create deployment my-nginx-deployment --imagenginx --replicas2这将创建一个名为 my-nginx-deployment 的 Deployment使用 nginx 镜像并配置 Deployment 控制器以管理两个 Pod 副本。 4、删除 Pod
要删除一个 Pod可以使用以下命令
kubectl delete pod pod_namekubectl delete pod my-nginx-deployment-56b7d44759-9sdr2这将删除指定名称的 Pod因为前面指定了副本数为2删除后会自动重建。 5、获取 Pod 日志
要查看 Pod 的日志可以使用以下命令
kubectl logs pod_namekubectl logs my-nginx-deployment-56b7d44759-mm7gw此命令将打印出指定 Pod 的日志。 6、进入 Pod 执行命令
要在 Pod 内部执行命令可以使用以下命令
kubectl exec -it pod_name -- /bin/bashkubectl exec -it my-nginx-deployment-56b7d44759-mm7gw -- /bin/bash这将在指定的 Pod 内部启动一个交互式的 shell允许执行命令进行调试或查看状态。 7、暂停和启动 Pod
从 Kubernetes 版本 1.20 开始kubectl pause 和 kubectl unpause 命令已经不再推荐使用并且在较新的版本中已被移除。
这是因为这两个命令不再被视为最佳实践因为它们直接修改了 Pod 的状态而且可能会引起一些不必要的混淆和意外行为。
相反推荐的做法是使用更高级的控制器如 Deployment、StatefulSet、DaemonSet 等来管理 Pod 的生命周期。通过更新这些控制器的 Pod 模板来控制 Pod 的启动和停止可以更加灵活地管理应用程序的部署和维护。
1.20 之前的低版本
要暂停一个 Pod可以使用以下命令
kubectl pause pod pod_name要继续一个暂停的 Pod可以使用以下命令
kubectl unpause pod pod_name较新的版本改变 Pod 副本数量
在 Kubernetes 中没有直接的 stop 命令来停止 Pod。通常可以通过删除 Pod 、副本数量缩减来实现停止。
缩放 Deployment如果您想停止一个 Deployment 下的所有 Pod可以使用 kubectl scale 命令来将副本数量缩减为 0。例如
kubectl scale --replicas0 deployment/deployment-namekubectl delete pod pod-name如将名为 my-nginx-deployment 的部署的副本数量缩减为 0
kubectl scale --replicas0 deployment/my-nginx-deployment这将把名为 nginx 的部署中的所有 Pod 的副本数量缩减为 0从而停止所有 my-nginx-deployment 的运行。 8、改变 Pod 副本数量
要改变 Deployment 或 ReplicaSet 中 Pod 的副本数量可以使用以下命令
1、语法
kubectl scale deployment deployment_name --replicasreplica_count2、例子将 nginx-deployment副本数从2增加至3个kubectl scale deployment nginx-deployment --replicas39、查看当前部署中使用的镜像版本
1、语法deployment_name 为要查询的 Deployment 的实际名称
kubectl get deployment deployment_name -ojsonpath{.spec.template.spec.containers[0].image}2、例子查看 nginx-deployment 中正在使用的 nginx 容器的镜像版本
kubectl get deployment nginx-deployment -ojsonpath{.spec.template.spec.containers[0].image}
这将返回 nginx-deployment 中正在使用的 nginx 容器的镜像版本。 10、滚动更新 Pod
使用 kubectl set image 命令来更新 Deployment 中的容器镜像。
如把目前的nginx-deployment 使用的nginx版本更新为nginx:1.22.1版本。
kubectl set image deployment/nginx-deployment nginxnginx:1.22.111、导出 、导入Pod 的配置
较新的 Kubernetes 版本中–export 标志已被弃用。
要导出 Pod 的配置可以使用 kubectl get 命令结合 --export 标志并将输出保存到文件中。然后可以使用 kubectl apply 命令将此配置重新导入到集群中。以下是示例
1、导出配置到文件
1、语法
kubectl get pod pod_name -o yaml pod.yamlkubectl get deployment deployment_name -o yaml deployment.yaml2、例子例子1:导出 my-pod 的配置到文件 my-pod.yaml
kubectl get pod my-pod -o yaml my-pod.yaml例子2:获取名为 nginx-deployment 的 Deployment 的 YAML 配置并将其保存到名为 nginx-deployment20240404.yaml 的文件中。kubectl get deployment nginx-deployment -o yaml nginx-deployment20240404.yaml 2、导入配置文件到集群
kubectl apply -f nginx-deployment20240404.yaml kubectl apply -f my-pod.yaml这将根据 yaml 文件中的配置创建或更新 Pod。 12、查看 Pod 的 CPU、内存 使用情况
## 所有
kubectl top pods##查看特定命名空间中 Pod
kubectl top pod pod-name --namespacenamespacekubectl top pods -ndefault
kubectl top pod nginx-deployment-78f585888c-dnd2r -ndefault
kubectl top pod nginx-deployment-78f585888c-dnd2r --namespacedefault13、端口转发
在 Kubernetes 中可以使用 kubectl port-forward 命令来将本地端口与 Pod 中的端口进行转发。
这对于调试和测试非常有用例如在本地机器上访问运行在 Kubernetes 集群中的 Pod。
kubectl port-forward pod-name local-port:pod-port --namespacenamespace其中pod-name 是要转发的 Pod 的名称。
local-port 是本地主机上用于转发流量的端口。
pod-port 是要转发到 Pod 中的端口。
namespace 是 Pod 所在的命名空间。
1、例如将名为 my-pod 的 Pod 中的端口 80 转发到本地主机上的端口 9090。
kubectl port-forward my-pod 9090:80本地主机的端口 9090 将会与 Pod 中的端口 80 进行绑定。现在可以通过访问 http://localhost:9090 来访问 Pod 中运行的服务。 只能在本地访问不能在浏览器访问。 2、如果转发到主机的 IP 地址而不是 localhost你可以通过指定 --address 或 -a 参数来指定要监听的地址。
kubectl port-forward pod-name local-port:pod-port --address host-ipkubectl port-forward my-pod 9090:80 --address 192.168.234.20在浏览器即可访问192.168.234.20:9090。 The End点点关注收藏不迷路