Q's blog

一些个人文档笔记

调度器学习基础概览

1. 资源调度基础

scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念

阅读全文 »

1
2
3
4
5
set listchars=trail:.
set list
set tabstop=2
set number
set paste

滚动更新

默认情况下,Kubernetes 的 Deployment 是具有滚动更新的策略来进行 Pod 更新的,该策略可以在任何时间点更新应用的时候保证某些实例依然可以正常运行来防止应用 down 掉,当新部署的 Pod 启动并可以处理流量之后,才会去杀掉旧的 Pod。

在使用过程中我们还可以指定 Kubernetes 在更新期间如何处理多个副本的切换方式,比如我们有一个3副本的应用,在更新的过程中是否应该立即创建这3个新的 Pod 并等待他们全部启动,或者杀掉一个之外的所有旧的 Pod,或者还是要一个一个的 Pod 进行替换?下面示例是使用默认的滚动更新升级策略的一个 Deployment 定义,在更新过程中最多可以有一个超过副本数的容器(maxSurge),并且在更新过程中没有不可用的容器。

阅读全文 »

什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

阅读全文 »

什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

阅读全文 »

在关于kubernetes资源限制的这个由两部分组成的系列文章的第一篇文章中,我讨论了如何使用ResourceRequirements对象来设置容器中容器的内存限制,以及容器运行时和linux控制组如何实现这些限制。我还谈到了请求之间的区别,用于在调度时通知调度程序pod的需求,以及限制,用于在主机系统处于内存压力时帮助内核强制执行使用限制。在这篇文章中,我想继续详细查看cpu时间请求和限制。阅读完第一篇文章并不是从这篇文章中获取价值的先决条件,但我建议你在某些时候阅读它们,以便全面了解工程师和集群管理员可以使用的控件。

阅读全文 »

一、k8s集群规模,使用的版本及部署方式,master节点跑了什么组件,每个组件作用?

k8s集群规模:个人推荐 K8S 集群规模不要超过千台节点

k8s使用版本:比最新版本低一个版本(例:目前最新是1.17版本,生产推荐使用 1.16版本)

k8s部署方式:个人推荐使用 kubeadm二进制 部署

K8S Master节点一般跑了:ETCD,ApiServer,Controller Manager ,Scheduler

阅读全文 »

1
for i in ./*; do echo $i; find $i |wc -l; done

循环查询目录文件个数

Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘路由器。它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理。

除了众多的功能之外,Traefik 的与众不同之处还在于它会自动发现适合你服务的配置。当 Traefik 在检查你的服务时,会找到服务的相关信息并找到合适的服务来满足对应的请求。

Traefik 兼容所有主流的集群技术,比如 Kubernetes,Docker,Docker Swarm,AWS,Mesos,Marathon,等等;并且可以同时处理多种方式。(甚至可以用于在裸机上运行的比较旧的软件。)

阅读全文 »

本文档介绍使用二进制部署 kubernetes v1.16.6 集群的所有步骤(Hard-Way模式)
本系列系文档适用于 CentOS 7 及以上版本系统
由于启用了 x509 证书双向认证、 RBAC 授权等严格的安全机制,建议从头开始部署,否则可能会认证、授权等失败!
从 v1.16.x 版本开始,本文档做了如下调整:

  • 容器运行时:用 containerd 替换 docker,更加简单、健壮;相应的命令行工具为crictl;
  • Pod 网络:用 calico 替换 flannel 实现 Pod 互通,支持更大规模的集群;新增指标监控系统:使用主流的 Prometheus、Grafana 技术栈实现集群指标采集和监控;如果想继续使用 docker 和 flannel,请参考附件文档。
阅读全文 »
0%