k8s里面kubectl get pod -d wide命令作用是什么?
作者:卡卷网发布时间:2024-12-04 15:55浏览数量:88次评论数量:0次
相关阅读:
对K8s资源的常用操作(K8s常用命令)
K8s创建Pod的两种方式
K8s快速入门:k8s简介及k8s主要组件
只要是操作对象都可以增删改查(create、get、describe、delete..)
- 名称空间/命名空间:namespace 可先理解成分组
- 容器组:Pod
- 网络:service
- 配置文件:config
- 控制器:controller
- 节点:node
...
# 常见选项
-n:指定名称空间
-o:指定输出格式{yaml|json|wide}输出pod详细信息
-f:指定资源清单名字
-c:指定容器名
查(宿主机节点、名称空间、pod、pod控制器等信息)
## 查询宿主机节点信息
#节点名字默认为主机名,可根据公司实际对节点命名。
比如,某项目中k8s所在宿主机命名是paas-ip,业务宿主机命名是dynamic-xxx-ip
[root@k8s01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s01 Ready master 13h v1.19.3
k8s02 Ready node 12h v1.19.3
k8s03 Ready node 12h v1.19.3
## 查看名称空间
[root@k8s01 ~]# kubectl get namespaces/ns
NAME STATUS AGE
default Active 13h
kube-flannel Active 12h
kube-node-lease Active 13h
kube-public Active 13h
kube-system Active 13h
## 查看pod
[root@k8s01 ~]# kubectl get pod -A //查看所有pod
[root@k8s01 ~]# kubectl get pods -n 名称空间 (指定名称空间)
[root@k8s01 ~]# kubectl get pods -owide -n 名称空间 //-o指定输出格式{yaml|json|wide}
## 获取deployment或statefulset等Pod控制器(controller)配置
kubectl get deployment/statefulset -n ns名
dp是无状态应用
st是有状态
通过该命令,可以获取当前环境哪些容器是有状态的,哪些是无状态的
#理解deployment/ 配置
kubectl edit deployment/statefulset -n ns名称
通过该命令可以查看deployment的配置。常见的配置:
1、资源
resources参数主要包括limits资源参数和requests资源参数。
其中request定义了pod中容器启动所需的最少资源,limit参数定义了该pod中容器运行中可占用的资源上限
2、副本数
replicas参数定义了该dp所拉起的pod数量(由于cbs一个pod对应一个容器,因此也是容器的数量)
#容器扩缩容(弹缩)
现网环境不建议后台操作,最好是通过df前台操作
kubectl scale deployment dp名 -replicas=x -n ns名称
其中x是要调整的副本数
理解delete pod 操作和副本数的关系:delete操作后,k8s会检测到存活的pod数比应有的数量(即副本数)少,因此会尝试重新拉起;而如果修改了副本数,则pod的数量变化是永久的。k8会根据副本数值,确定是新建或销毁部分容器,使存活pod数与副本数一致。
获取详细信息:
kubectl 也可以describe dp
也可以describe pod
增、删(名称空间、pod、pod控制器等)
## 创建名称空间
[root@k8s01 ~]# kubectl create namespace ns001
namespace/ns001 created
[root@k8s01 ~]# kubectl get namespaces
NAME STATUS AGE
default Active 13h
ns001 Active 6s
...
## 创建pod,命令行方式(不指定控制器和名称空间,创建到default名称空间)
[root@k8s01 ~]# kubectl run nginx --image=nginx
pod/nginx created
[root@k8s01 ~]# kubectl get pod //需要等一会,状态变为Running成功
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 2m15s
[root@k8s01 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 106s 10.2.1.7 k8s03 <none> <none>
可以在相应节点k8s03上docker ps看下,是有两个容器的,其中一个是根容器
## 使用dp控制器创建pod
[root@k8s01 ~]# kubectl create deployment nginx --image=nginx:alpine
deployment.apps/nginx created
[root@k8s01 ~]# kubectl create deployment nginx --image=nginx:alpine -n ns001
deployment.apps/nginx created
deployment 控制器
--image=nginx:alpine 指定镜像
-n 在指定的名称空间中创建pod
[root@k8s01 ~]# kubectl get pod //查看pod详细信息
NAME READY STATUS RESTARTS AGE
nginx-565785f75c-c4fcl 1/1 Running 0 10s
[root@k8s01 ~]# kubectl get pod -o wide //指定输出格式查看pod详细信息
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-565785f75c-c4fcl 1/1 Running 0 18s 10.2.1.5 k8s03 <none> <none>
## 删除pod(容器重弹)
[root@k8s01 ~]# kubectl delete pod nginx-565785f75c-c4fcl
pod "nginx-565785f75c-c4fcl" deleted
[root@k8s01 ~]# kubectl get pod //由于是deployment控制器,容器会很快被k8s重新拉起
NAME READY STATUS RESTARTS AGE
nginx-565785f75c-flskw 1/1 Running 0 20s
## 如要彻底删除pod,需删除控制器
[root@k8s01 ~]# kubectl get deployment -n ns001
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 3m51s
[root@k8s01 ~]# kubectl delete deployment nginx
deployment.apps "nginx" deleted
[root@k8s01 ~]# kubectl get deployment
No resources found in default namespace.
[root@k8s01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-565785f75c-flskw 0/1 Terminating 0 3m
[root@k8s01 ~]# kubectl get pod //稍等片刻就删掉了
No resources found in default namespace.
进入pod
## 进入
kubectl exec -it <pod id> csh -n <ns名称>
查看pod详细信息
## 查看pod创建详细信息,例如
[root@k8s01 ~]# kubectl describe pod nginx-565785f75c-m4c9n -n kube-andrew
[root@k8s01 ~]# kubectl describe pod nginx-app-deployment-66b6c48dd5-5cl9g -n ns001
## 查看pod日志(常用于排错)
[root@k8s01 ~]# kubectl logs -n kube-andrew nginx-565785f75c-m4c9n
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:office办公软件各有什么功能?
- 下一篇:https对网站有优化作用吗?
相关推荐

你 发表评论:
欢迎