前言在使用 Kubernetes 时,可能会遇到一些网络问题。当通过检查配置与日志无法排查错误时,这时就需要抓取网络数据包,但是Pod内一般不会安装tcpdump命令,那有没有方法可以直接通过宿主机抓取Pod网络数据包?
当然有,本文介绍 nsenter 命令,能够进入Pod容器 net 命名空间。并且本文提供一个快速进入Pod容器 net 命名空间脚本,方便大家使用。
nsenter 使用参数12345678910111213141516nsenter [options] [program [arguments]]options:-t, --target pid:指定被进入命名空间...
在排错过程中,kubectl 是最重要的工具,通常也是定位错误的起点。这里也列出一些常用的命令,在后续的各种排错过程中都会经常用到。
排错概览查看 Pod 状态以及运行节点12kubectl get pods -o widekubectl -n kube-system get pods -o wide
查看 Pod 事件1kubectl describe pod <pod-name>
查看 Node 状态12kubectl get nodeskubectl describe node <node-name>
kube-apiserver 日志12POD...
介绍 k8s集群的备份与恢复,主要就是etcd集群的备份与恢复。
ETCD一些基础查询操作查看集群状态123456二进制:ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/cert/ca.pem --cert=/etc/etcd/cert/etcd.pem --key=/etc/etcd/cert/etcd-key.pem --endpoints=https://10.16.2.17:2379,https://10.16.2.18:2379,https://10.16.2.19:2379 endpoint health阿里kubeadm:E...
背景 今天我们讨论的这个问题,跟 K8s 集群的 Namespace 有关。Namespace 是 K8s 集群资源的“收纳”机制。我们可以把相关的资源“收纳”到同一个 Namespace 里,以避免不相关资源之间不必要的影响。
Namespace 本身也是一种资源。通过集群 API Server 入口,我们可以新建 Namespace,而对于不再使用的 Namespace,我们需要清理掉。Namespace 的 Controller 会通过 API Server,监视集群中 Namespace 的变化,然后根据变化来执行预先定义的动作。
有时候,我们会遇到下图中...
1.列出pod并排序123# 题目一般都是按名字排序$ kubectl get pod --sort-by .metadata.name
2.找出pod中的错误日志123# 要求是把错误内容输出到某个文件中,可以粘贴,也可以直接重定向文件$ kubectl logs mypod-798fcd9949-lk9rc | grep error > xx.log
3.创建一个pod ,并调度到某个节点上1234567891011121314151617$ cat > pod.yaml << EOFapiVersion: v1kind: Podmetadata: ...
Kafka的配置详尽、复杂,想要进行全面的性能调优需要掌握大量信息,这里只记录一下我在日常工作使用中走过的坑和经验来对kafka集群进行优化常用的几点。
1.JVM的优化 java相关系统自然离不开JVM的优化。首先想到的肯定是Heap Size的调整。
12vim bin/kafka-server-start.sh 调整KAFKA_HEAP_OPTS="-Xmx16G -Xms16G”的值
推荐配置:一般HEAP SIZE的大小不超过主机内存的50%。
2.网络和ios操作线程配置优化:1234# broker处理消息的最大线程数num.network....
自动化发布前言:个人现在在 上海一家大数据挖掘公司:负责运维架构,自动化与系统运维相关工作,今天主要是整理了下现在团队APP发布流程:方案:
因为在项目迭代的过程中,不可避免需要”上线”。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。
个人整理下部署流程说明其实现在很多部署方法,现在我们用目前比较流行的几种部署方案,或者说策略方案对比总结简单讨论一下目前比较流行的几种部署方案,或者说策略。如有不足之处请指出,如有谬误,请指正^_^。
我们有自己开发环境和测试环境 :
开发环境部署:
问...
Kafka集群稳定GC调优 调GC是门手艺活,幸亏Java 7引进了G1 垃圾回收,使得GC调优变的没那么难。G1主要有两个配置选项来调优:MaxGCPauseMillis 和 InitiatingHeapOccupancyPercent,具体参数设置可以参考Google,这里不赘述。
Kafka broker能够有效的利用堆内存和对象回收,所以这些值可以调小点。对于 64Gb内存,Kafka运行堆内存5Gb,MaxGCPauseMillis 和 InitiatingHeapOccupancyPercent 分别设置为 20毫秒和 35。Kafka的启动脚本使用的不是 G1回收,需...
系统环境:
Docker 版本:19.03.8
Kubeadm 版本:1.17.4
Kubernetes 版本:1.17.4
Kubernetes Master 数量:3
Kubernetes 安装方式:Kubeadm
一、问题描述
下面节点信息都是都是为了写博客虚构的,跟真实节点信息大体相同
Kubernetes 集群中总共有三台 Master,分别是:
k8s-master-2-11
k8s-master-2-12
k8s-master-2-13
对其中 k8s-master-2-11 Master 节点服务器进行了内核和软件升级操作,从而先将其暂时剔出集群,然后进行...
之前在解决 CoreDNS 的5秒超时问题的时候,除了通过 dnsConfig 去强制使用 tcp 方式解析之外,我们提到过使用 NodeLocal DNSCache 来解决这个问题。NodeLocal DNSCache 通过在集群节点上运行一个 DaemonSet 来提高 clusterDNS 性能和可靠性。处于 ClusterFirst 的 DNS 模式下的 Pod 可以连接到 kube-dns 的 serviceIP 进行 DNS 查询。通过 kube-proxy 组件添加的 iptables 规则将其转换为 CoreDNS 端点。通过在每个集群节点上运行 DNS 缓存,No...