pod相位状态
● pod的status字段是一个PodStatus的对象,Pod 对象总是应该处于其生命进程中以下几个相位(phase)之一。
Pending Pod创建过程中,但它尚未被调度完成
Running Pod中所有容器都已经被创建成功
Comleted Pod所有容器都已经成功终止,并不会被重启
Failed Pod中的所有容器中至少有一个容器退出是非0状态
Unknow 无法正常获取到Pod对象的状态信息
Pod 管理命令(一)
子命令 | 说明 | 备注 |
run/create | 创建资源对象 | 可输出资源文件模板 |
get | 查看资源对象的状态信息 | 常用参数: -o 显示格式 |
describe | 查询资源对象的属性信息 | |
logs | 查看容器的报错信息 | 常用参数: -c 容器名称 |
● kubectl get 语法格式
kubectl get 资源类型 [资源名称] [选项/参数]
● 常用参数
-o name 只显示名字
-o wide 显示更加的详细信息
-o yaml 以Yaml语法格式显示资源对象
-o json 以json语法格式显示资源对象
get
# 查看 Pod 资源对象
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myweb 1/1 Running 0 10m
# 只查看资源对象的名字
[root@master ~]# kubectl get pods -o name
pod/myweb
# 查看资源对象运行节点的信息
[root@master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myweb 1/1 Running 0 10m 10.244.1.3 node-0001
# 查看资源对象详细信息,Yaml 格式
[root@master ~]# kubectl get pod myweb -o yaml
apiVersion: v1
kind: Pod
metadata:
name: myweb
... ...
# 查看名称空间
[root@master ~]# kubectl get namespaces
NAME STATUS AGE
default Active 39h
kube-node-lease Active 39h
kube-public Active 39h
kube-system Active 39h
#查看 kube-system 名称空间中的 Pod 信息
[root@master ~]# kubectl -n kube-system get pods
NAME READY STATUS RESTARTS AGE
etcd-master 1/1 Running 0 39h
kube-apiserver-master 1/1 Running 0 39h
kube-controller-manager-master 1/1 Running 0 39h
kube-scheduler-master 1/1 Running 0 39h
create
# 创建名称空间资源对象[root@master ~]# kubectl create namespace worknamespace/work created
# 查看名称空间[root@master ~]# kubectl get namespacesNAME STATUS AGEdefault Active 39hkube-node-lease Active 39hkube-public Active 39hkube-system Active 39hwork Active 11s
run
# 创建简单 Pod 资源对象[root@master ~]# kubectl -n work run myhttp --image=myos:httpdpod/myhttp created
# 查询资源对象[root@master ~]# kubectl -n work get pods -o wideNAME READY STATUS RESTARTS AGE IP NODEmyhttp 1/1 Running 0 3s 10.244.2.2 node-0002
# 访问验证[root@master ~]# curl http://10.244.2.2Welcome to The Apache.
describe
# 查看资源对象的属性信息[root@master ~]# kubectl describe pod mywebName: mywebNamespace: defaultPriority: 0Service Account: defaultNode: node-0001/192.168.1.51... ...Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 16m default-scheduler Successfully assigned default/myweb to node-0001 Normal Pulled 16m kubelet Container image "myos:nginx" already present on machine Normal Created 16m kubelet Created container myweb Normal Started 16m kubelet Started container myweb
# 查看 work 名称空间下的 pod 信息[root@master ~]# kubectl -n work describe pod myhttpName: myhttpNamespace: workPriority: 0Service Account: defaultNode: node-0002/192.168.1.52... ...
logs
# 访问服务,并查看日志[root@master ~]# curl http://10.244.1.3/info.php[root@master ~]# curl http://10.244.2.2/info.php... ...# 查看 myweb 日志[root@master ~]# kubectl logs myweb 2022/11/12 18:28:54 [error] 7#0: *2 open() "/usr/local/nginx/html/info.php" failed (2: No such file or directory), client: 10.244.0.0, server: localhost, request: "GET /info.php HTTP/1.1", host: "10.244.2.12"# 查看 myhttp 日志[root@master ~]# kubectl -n work logs myhttp[root@master ~]#