EvenChan's Ops.

EvenChan's Ops.

it's better to burn out than to fade away

k8s排错概览
在排错过程中,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集群备份与恢复
介绍​ 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...
我们为什么会删除不了集群的NameSpace
背景​ 今天我们讨论的这个问题,跟 K8s 集群的 Namespace 有关。Namespace 是 K8s 集群资源的“收纳”机制。我们可以把相关的资源“收纳”到同一个 Namespace 里,以避免不相关资源之间不必要的影响。 ​ Namespace 本身也是一种资源。通过集群 API Server 入口,我们可以新建 Namespace,而对于不再使用的 Namespace,我们需要清理掉。Namespace 的 Controller 会通过 API Server,监视集群中 Namespace 的变化,然后根据变化来执行预先定义的动作。 ​ ​  有时候,我们会遇到下图中...
CKA真题
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性能优化-JVM参数配置优化(二)
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性能优化-JVM参数配置优化(一)
Kafka集群稳定GC调优  调GC是门手艺活,幸亏Java 7引进了G1 垃圾回收,使得GC调优变的没那么难。G1主要有两个配置选项来调优:MaxGCPauseMillis 和 InitiatingHeapOccupancyPercent,具体参数设置可以参考Google,这里不赘述。   Kafka broker能够有效的利用堆内存和对象回收,所以这些值可以调小点。对于 64Gb内存,Kafka运行堆内存5Gb,MaxGCPauseMillis 和 InitiatingHeapOccupancyPercent 分别设置为 20毫秒和 35。Kafka的启动脚本使用的不是 G1回收,需...
kubernetes添加新master出现ETCD健康检查失败
系统环境: 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 节点服务器进行了内核和软件升级操作,从而先将其暂时剔出集群,然后进行...
在 Kubernetes 集群中使用 NodeLocal DNSCache
​ 之前在解决 CoreDNS 的5秒超时问题的时候,除了通过 dnsConfig 去强制使用 tcp 方式解析之外,我们提到过使用 NodeLocal DNSCache 来解决这个问题。NodeLocal DNSCache 通过在集群节点上运行一个 DaemonSet 来提高 clusterDNS 性能和可靠性。处于 ClusterFirst 的 DNS 模式下的 Pod 可以连接到 kube-dns 的 serviceIP 进行 DNS 查询。通过 kube-proxy 组件添加的 iptables 规则将其转换为 CoreDNS 端点。通过在每个集群节点上运行 DNS 缓存,No...
CoreDNS 自定义域名解析问题
​ 前几天我们在解决 CoreDNS 的5秒超时问题的时候,使用了 NodeLocal DNSCache 来解决这个问题,集群 DNS 的解析性能也明显大幅提升了。但是今天确遇到一个很大的坑,我们在做 DevOps 实验的时候,相关的工具都使用的是自定义的域名,这个时候要互相访问的话就需要添加自定义的域名解析,我们可以通过给 Pod 添加 hostAlias 来解决,但是在使用 Jenkins 的 Kubernetes 插件的时候却不支持这个参数,需要使用 YAML 来自定义,比较麻烦,所以想着通过 CoreDNS 来添加 A 记录解决这个问题。 ​ 正常我们只需要在 CoreDN...
avatar
EvenChan
Tomorrow Is Another Day