可以使用 kubectl 命令从 Kubernetes 中的 Pod 中检索应用程序日志。 在这篇笔记中,我将展示如何从正在运行的 Pod(包括所有副本)和之前崩溃的 Pod 中获取日志。...还将展示如何使用 kubectl 命令获取最近(tail)和实时跟踪(follow) Pod 中的日志。...使用 Kubectl 获取 Pod 日志 要从 Kubernetes 中的 Pod 获取日志,首先需要找出 Pod 的名称或与 Pod 关联的标签: $ kubectl get pods --show-labels...从 Pod 获取日志: $ kubectl logs 如果 Pod 之前发生过崩溃,您可以通过以下方式访问上一个 Pod 的日志: $ kubectl logs --previous...我可以只获取 Pod 的最近 100 行日志: $ kubectl logs --tail=100 要显示最近一小时写入的 Pod 日志: $ kubectl logs --since
遇到的问题: kubectl get pods 发现很多pod的状态为evicted。...原因 eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。 多见于资源不足时导致的驱赶。...更多详情参考 kubernetes的eviction机制 http://licyhust.com/容器技术/2017/10/24/eviction/ 解决方案 排查资源和异常原因,防止新的驱赶产生 使用如下命令删除旧驱赶的遗留...kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod 参考 Kubelet does not delete
前言: 当我们在使用Kubernetes时,常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件,这样做有助于版本控制和资源的迁移。...kubectl获取ConfigMap导出YAML时如何忽略某些字段 一、理解kubectl get命令 在深入了解如何忽略特定字段之前,我们先来了解一下kubectl get命令。...kubectl get cm 以mysql-config为例: kubectl get cm mysql-config -o yaml 以上命令会打印出指定ConfigMap的YAML格式输出,包括所有元数据信息...kubectl get cm mysql-config -o yaml | grep -v '^\s*creationTimestamp:' 上述命令将ConfigMap输出的YAML内容中的creationTimestamp...a为1,然后在遇到下一个以一些空格后跟文字字符开头的行时,重新设置标志位为0,完成范围的处理。
大家好,又见面了,我是你们的朋友全栈君。...kubectl get pods --namespace=ingress-nginx --watch 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145744
一 现象引入 使用'kubectl get pods --all-namespaces', 发现很多'pod的状态为evicted' 原因 eviction,即'驱赶的意思',意思是当节点出现异常时...,kubernetes将有'相应的机制驱赶'该节点上的Pod, 多见于资源不足时导致的驱赶。...注意: 即使集群'状态恢复',eviction状态的pod会'在系统中存在',需要'手动删除' --> 只是影响美观 解决方案 排查'资源和异常原因',防止新的驱赶产生 --> 结合'journal...-u kubelet' 使用如下命令删除旧驱赶的遗留 需求:删除状态为Evicted的pod #!...ns} | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n ${ns} done 分析:深层次的原因 发布者:全栈程序员栈长,
kubectl 常用命令 获取资源信息 获取所有 Pod:kubectl get pods 获取所有 Service:kubectl get services 获取特定 Namespace 中的...> 查看 Service 的详细信息:kubectl describe service 创建资源 创建一个 Pod:kubectl create -f pod.yaml...config use-context 为资源添加标签和注释 为一个 Pod 添加标签:kubectl label pod <label-key...apply -f deployment.yaml 应用或更新一个 ConfigMap:kubectl apply -f configmap.yaml 删除资源 删除一个 Pod:kubectl delete...:kubectl config use-context 为资源添加标签和注释 为一个 Pod 添加标签:kubectl label pod <label-key
- kubectl get pods -o wide - kubectl get pod xxx -o yaml #获取yaml配置文件 - kubectl get nodes -o wide...all #获取所有类型资源 - kubectl get componentstatuses #获取k8s各组件健康状态,简写为kubectl get cs - kubectl describe...#强制删除资源,在1.3版本去掉--force选项 - kubectl replace -f xxx.yaml #更改定义资源的yaml配置文件 - kubectl get secret -...NODENAME #将node设置为检修状态,不再向此node调度新的pod - kubectl drain NODENAME #将node设置为(排水)不可用状态,并且驱逐其上的pod转移至其他正常...这一步会进行两个步骤:1.将node设为cordon状态2.驱逐node上的pod - kubectl drain node2 --delete-local-data --force --ignore-daemonsets
pod kubectl get pod -o wide #查看更详细的信息,比如pod所在节点 kubectl get pod --show-labels #获取pod并查看pod的标签 查看..., apply 可以重复执行,create 不行 kubectl create -f pod.yaml kubectl apply -f pod.yaml 基于 pod.yaml 定义的名称删除指定资源...# 获取 pod 清单的文档说明 # 从标准输入创建多个 YAML 对象 cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata...# 列出当前命名空间下的全部 Pods kubectl get pod my-pod -o yaml # 获取一个 pod 的 YAML # describe 命令的详细输出...kubectl replace --force -f ./pod.json # 为多副本的 nginx 创建服务,使用 80 端口提供服务,连接到容器的 8000 端口。
apply -f delete_pod_by_labels.yaml 查看实验状态 执行命令:kubectl get blade delete-two-pod-by-labels -o json,查看实验状态...执行命令,开始实验: $ kubectl apply -f delay_pod_network_by_names.yaml 查看实验状态 执行 kubectl get blade delay-pod-network-by-names...apply -f loss_pod_network_by_names.yaml 查看实验状态 执行 kubectl get blade loss-pod-network-by-names -o json...apply -f dns_pod_network_by_names.yaml 查看实验状态 执行 kubectl get blade dns-pod-network-by-names -o json...apply -f pod_io.yaml 查看实验状态 执行 kubectl get blade inject-pod-by-labels -o json 命令,查看实验状态。
creating it 译:获取名为'myrq'的新ResourceQuota的YAML,CPU限制为1,内存限制为1G,Pod个数为2个,而无需创建它 # kubectl create quota:...kubectl set image pod/nginx nginx=nginx:1.7.1 #------以下命令为查看nginx容器状态的命令------- # kubectl describe...wget -O- x.x.x.x:80 图片 Get pod's YAML 译:获取pod的YAML # kubectl get: 运行 kubectl 命令的基本命令部分,用于获取资源信息。...# nginx: 这是要获取信息的 Pod 的名称,将获取名为 "nginx" 的 Pod 的信息。 # -o yaml: 表示以 YAML 格式显示结果。...kubectl describe po nginx 图片 知识点: kubectl describe 用于获取资源的详细信息包含如下信息。 Pod 的基本信息:名称、命名空间、标签、状态等。
图片同时也可以通过yaml文件删除:kubectl delete -f app.yaml图片删除dashboard的pod:kubectl delete pod dashboard-metrics-scraper...--tail 10 my-pod #获取后10行图片4.多容器场景,指定容器获取(-c)当一个pod里面有多个container时,使用-c来指定容器:kubectl logs my-pod -c...给这个yaml文件,再加一个redis容器,则通过-c指定redis容器来获取最后五行日志:图片5.查看Pod/Node状态(describe)kubectl describe pod nginx3-6f47ffccb5...Unknown(未知) 通常是由于通信问题造成的无法获得Pod的状态。...ContainerCreating Pod正在创建,一般为正在下载镜像,或者有配置不当的地方,可以通过describe查看具体原因。附带PDF版本:kubectl用法总结
观测结果 # 获取实验 pod ip$ kubectl get pod -l app=redis,role=master -o jsonpath={.items..status.podIP}10.42.0.19...的容器注入丢包率 100% 的故障,只针对 IP 为 10.42.0.26 的 pod 生效,也就是除 10.42.0.26 以外的 pod 都能正常访问 redis-master-68857cd57c-hknb6...观测结果 # 获取实验 pod ip$ kubectl get pod -l app=redis,role=master -o jsonpath={.items..status.podIP}10.42.0.19...# 进入观测 pod,IP为:10.42.0.26(被设置丢包率 100%)$ kubectl exec -it redis-slave-55d8c8ffbd-jd8sm bash# Ping 实验Pod...,获取容器 ID ,修改 kill_container_process_by_id.yaml 中的 container-ids 值。
pods # 获取 pod 清单的文档说明 # 从标准输入创建多个 YAML 对象 cat <<EOF | kubectl apply -f - apiVersion...# 列出当前命名空间下的全部 Pods kubectl get pod my-pod -o yaml # 获取一个 pod 的 YAML # describe 命令的详细输出.../my-manifest.yaml # 生成一个句点分隔的树,其中包含为节点返回的所有键 # 在复杂的嵌套JSON结构中定位键时非常有用 kubectl get nodes -o json | jq...# 获取含 name=myLabel 标签的 Pods 的日志(标准输出) kubectl logs my-pod --previous # 获取上个容器实例的...pod.yaml 的文件 --dry-run=client -o yaml > pod.yaml kubectl attach my-pod -i
cs # 获取所有deployment kubectl get deployment --all-namespaces # 查看kube-system namespace下面的pod/svc/deployment...# 创建当前目录下的所有yaml资源 kubectl create -f ./nginx1.yaml -f ....explain pods,svc # 获取 pod 和 svc 的文档 # 更新 kubectl rolling-update python-v1 -f...replace -f - # 基于 stdin 输入的 JSON 替换 pod # 为 nginx RC 创建服务,启用本地 80 端口连接到容器上的...wide -o yaml > configmap.yaml 复杂操作命令: 删除kube-system 下Evicted状态的所有pod: kubectl get pods -n kube-system
YAML与Kubernetes 了解现有的YAML描述文件 终端输入以下命令来获取到每个实例的YAML配置文件 kubectl get namespaces kubectl get namespace...kubectl get pod -o yaml kubectl get deployments kubectl get deployment -o yaml...网络、服务与负载均衡 端口转发访问集群中的应用 kubectl port-forward [本地端口]: 以nginx为例子: kubectl get deployments.../cfs.yaml kubectl get pv #获取持久卷的列表,注意此时cfs持久卷的状态 新建一个cfsclaim.yaml文件,创建一个持久卷申领PVC,让PVC绑定之前创建的PV.../cfsclaim.yaml kubectl get pv #获取持久卷的列表,注意此时cfs持久卷的状态 如果返回类似以下信息,STATUS状态为Bound,CLAIM为default/
那里获取 pod 的 yaml 文件,然后从 status 字段中找到 pod 的 phase。...那么,我们就可以,通过 kubectl get pod pod_name -o yaml|grep phase 来查看 pod 的 phase: [root@master-node ~]# kubectl...-o yaml|grep phase phase: Succeeded [root@master-node ~]# 从上,我们通过 pod 的 yaml 文件里获取了它们的 phase。...同样,我们也可以通过 kubectl describe pod 来获取 conditions:kubectl describe pod pod_name|grep Conditions: -A 5 [root...原来,ContainersReady 的状态为 false 的原因,是 PodCompleted 了。
根据yaml文件创建pod kubectl apply -f 根据yaml文件删除pod kubectl delete -f 删除pod节点 kubectl delete...cs 获取所有deployment kubectl get deployment --all-namespaces 查看kube-system namespace下面的pod/svc/deployment...--image=busybox --replicas=5 ----启动多个pod kubectl explain pods,svc # 获取 pod 和 svc 的文档 更新 kubectl rolling-update...基于 stdin 输入的 JSON 替换 pod 为 nginx RC 创建服务,启用本地 80 端口连接到容器上的 8000 端口 kubectl expose rc nginx --port=80...下Evicted状态的所有pod: kubectl get pods -n kube-system |grep Evicted| awk ‘{print $1}’|xargs kubectl delete
systemctl status kube-proxy/docker/kubelet 节点相关操作 设为node为不可调度状态: kubectl cordon node1 解除node不可调度状态 kubectl...获取节点相应服务的信息: kubectl get nodes 查看pod相关信息 kubectl get pods 查看指定namespace的pod信息 kubectl get pods -n namespace...kubectl get pods -o wide 查看pods定义的详细信息 kubectl get pods -o yaml 查看运行的pod的环境变量 kubectl exec pod名 env...kubectl replace -f xx.yaml [--force] 删除资源 kubectl delete -f xx.yaml 删除指定pod kubectl delete pod podname...pod --all 导出所有configmap kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml 进入pod
]# kubectl create -f pod-command.yaml pod/pod-command created # 查看Pod状态 # 此时发现两个pod都正常运行了 [root@k8s-master01...):所有容器都已经终止,但至少有一个容器终止失败,即容器返回了非0值的退出状态 未知(Unknown):apiserver无法正常获取到pod对象的状态信息,通常由网络通信失败所导致 5.3.1...# 接下来,删除pod,修改yaml文件的nodeName的值为node3(并没有node3节点) [root@k8s-master01 ~]# kubectl delete -f pod-nodename.yaml...create -f pod-nodename.yaml pod/pod-nodename created #再次查看,发现已经向Node3节点调度,但是由于不存在node3节点,所以pod状态为挂起...# 接下来,删除pod,修改yaml文件中nodeSelector的值为nodeenv: abcd(不存在打有此标签的节点) [root@k8s-master01 ~]# kubectl delete
让我们深入了解基本kubectl命令: 获取 kubectl 版本 检查客户端和服务器的kubectl工具版本。...YAML配置文件中定义的所需状态。...示例(检查部署的推出状态): kubectl rollout status deployment/ Pod描述信息 获取有关特定 pod 的详细信息。...Deployment、ReplicaSet 或 Pod 公开为服务。...-o=wide:以纯文本格式输出任何附加信息,对于 pod,包含节点名称 -o=yaml:输出 YAML 格式的 API 对象 使用示例-o=custom-columns: #集群中运行的所有镜像 kubectl
领取专属 10元无门槛券
手把手带您无忧上云