阳明
阳明
https://www.qikqiak.com/post/use-nodelocal-dns-cache/ 之前在解决 CoreDNS 的5秒超时问题的时候,除了通过 dnsConfig 去强制使用 tcp 方式解析之外,我们提到过使用 NodeLocal DNSCache 来解决这个问题。NodeLocal DNSCache 通过在集群节点上运行一个 DaemonSet 来提高 clusterDNS 性能和可靠性。处于 ClusterFirst 的 DNS 模式下的 Pod 可以连接到 kube-dns 的 serviceIP 进行 DNS 查询。通过 kube-proxy...
https://www.qikqiak.com/post/k8s-hpa-usage/ 在前面的学习中我们使用用一个 kubectl scale 命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象:Horizontal Pod Autoscaling(Pod 水平自动伸缩),简称HPA,HPA 通过监控分析一些控制器控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量,这是 HPA 最基本的原理: 我们可以简单的通过 kubectl autoscale 命令来创建一个 HPA 资源对象,HPA Controller默认30s轮询一次(可通过 kube-controller-manager 的--horizontal-pod-autoscaler-sync-period 参数进行设置),查询指定的资源中的 Pod 资源使用率,并且与创建时设定的值和指标做对比,从而实现自动伸缩的功能。
https://www.qikqiak.com/post/envoy-usage-demo/ Envoy 是为云原生应用而设计的开源边缘和服务代理,也是 Istio Service Mesh 默认的数据平面,本文我们通过一个简单的示例来介绍 Envoy 的基本使用。
https://www.qikqiak.com/post/ingress-nginx-how-to-work/ 本文的目的是解释 Nginx Ingress 控制器的工作原理,特别是 Nginx 模型的构建方式以及我们为何需要这个模型。
https://www.qikqiak.com/post/k8s-cluster-balancer/ 通过 Descheduler 实现 Kubernetes 的二次调度
https://www.qikqiak.com/post/grafana-k8s-plugin-kubegraf/ DevOpsProdigy KubeGraf 是一个非常优秀的 Grafana Kubernetes 插件,是 Grafana 官方的 Kubernetes 插件 的升级版本,该插件可以用来可视化和分析 Kubernetes 集群的性能,通过各种图形直观的展示了 Kubernetes 集群的主要服务的指标和特征,还可以用于检查应用程序的生命周期和错误日志。
https://www.qikqiak.com/post/k8s-ui-kubevious/ Kubevious 是一个开源的 Kubernetes Dashboard,但是和我们主流的 Dashboard 却不太一样,可以说非常有特色,他将应用程序相关得所有配置都集中在一起,这可以大大节省操作人员得时间,其实这都不是最主要的,主要的是他具有一个 Time Machine(时光机)功能,允许我们回到之前的时间去查看应用的错误信息。
https://www.qikqiak.com/post/zero-downtime-rolling-update-k8s/ 软件世界的发展比以往任何时候都快,为了保持竞争力需要尽快推出新的软件版本,而又不影响在线得用户。许多企业已将工作负载迁移到了 Kubernetes 集群,Kubernetes 集群本身就考虑到了一些生产环境的实践,但是要让 Kubernetes 实现真正的零停机不中断或丢失请求,我们还需要做一些额外的操作才行。
https://www.qikqiak.com/post/changelog/ 近期对我们的在线学习网站 优点知识 做了一些功能更新,无论是体验还是功能都更加完善了。大家对网站有任何的建议或者反馈都可以随时交流。 1.课程目录优化 用不同的 icon 区分视频、文档、直播,并记录每节课的学习进度,用不同的 icon 标识学习状态,更加清晰明了,增加“我已掌握”工,用户可以手动标记是否已经掌握某节课,否则需要学习完本节课后才会变成已学完的状态。 2.重构个人中心
https://www.qikqiak.com/post/deploy-vault-on-k8s/ 很多时候我们可能都是直接将应用程序的密码或者 API Token 之类的私密信息直接暴露在源代码中的,显然直接暴露这些私密信息不是一个好的方式。在 Kubernetes 系统中提供了一个 Secret 对象来存储私密的数据,但是也只是简单的做了一次 Base64 编码而已,虽然比直接暴露要好点了,但是如果是一些安全性要求非常高的应用直接用 Secret 显然也还是不够的。本文就将来介绍如何使用 HashiCorp Vault 在 Kubernetes 集群中进行秘钥管理。