kubernetes
文章平均质量分 91
张忠琳
我就是我 不用在怀疑
展开
-
【kubernetes/k8s概念】thanos原理架构
概述 Thanos 是一组组件,可以组合成具有无限存储容量的高可用度量系统,可以无缝添加到现有 Prometheus 部署之上。 Thanos 利用 Prometheus 2.0 存储格式高效地将历史指标数据存储在任何对象存储中,同时保持快速查询延迟。 此外还提供了所有 Prometheus 安装的全局查询视图,并且可以动态合并来自 Prometheus HA 对的数据。架构参考:Thanos - Highly available Prometheus setup...原创 2021-11-15 14:31:23 · 2820 阅读 · 1 评论 -
【kubernetes/k8s概念】k8s资料整理
1. k8s 安装部署 1.1 kubeadm https://github.com/kubernetes/kubeadm Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令来快速创建 kubernetes 集群。kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。被设计为只关心启动集群,而不是之前的节点准备工作。kubeadm init 启动一个 Kubernetes 主节点 kubeadm join ...原创 2021-08-30 17:28:22 · 2384 阅读 · 0 评论 -
【kubernetes/k8s概念】Helm chart
Helm 是Kubernetes 的包管理工具,类似与Linux 的包管理器,如 RedHat 系的 yum,可以方便的将打包好的 yaml 文件部署到 Kubernetes 上。 Helm主要解决以下问题: 把 yaml 文件作为一个整体管理 实现 yaml 的高效复用 实现应用级别的版本管理...原创 2021-08-05 16:10:51 · 9986 阅读 · 0 评论 -
【kubernetes/k8s概念】多集群联邦 kubefed 源码分析
github:https://github.com/kubernetes-sigs/kubefedmain | -->NewControllerManagerCommand | --> Run | -->NewKubeFedLeaderElector | -->startControllers ...原创 2021-08-03 14:04:03 · 7849 阅读 · 0 评论 -
【kubernetes/k8s概念】多集群联邦 kubefed 用户向导
1. Federated API types 查看已经注册的 API 可类型,执行命令kubectl get FederatedTypeConfig -nkube-federation-system# kubectl get FederatedTypeConfig -nkube-federation-systemNAME AGEapplications.app.k8s.io ...原创 2021-08-03 10:07:51 · 7913 阅读 · 0 评论 -
【kubernetes/k8s概念】多集群联邦 kubefed
Kubernetes Federation(联邦) 目的是希望实现单一集群统一管理多个Kubernetes集群,这些集群可能是跨地区(Region),也可能是在不同公有云供应商(Cloud Provider)上,亦或者是公司内部自行建立的集群。安装 helm v3 版本 下载 helm v3, 二进制文件 /usr/local/bin/helmwgethttps://get.helm.sh/helm-v3.6.0-linux-amd64.tar.gz ...原创 2021-07-30 10:26:24 · 10690 阅读 · 0 评论 -
【kubernetes/k8s概念】trakfik基础
traefik 是一款反向代理、负载均衡服务,支持自动化更新反向代理和负载均衡配置。 traefik 分为静态配置和动态配置静态配置:运行期间不会改变的配置,比如监听的端口、日志配置等 动态配置:运行期间会改变的配置,traefik 会定期更新配置,比如路由,限流和熔断等配置...原创 2021-07-12 08:58:52 · 8326 阅读 · 0 评论 -
Kubernetes Pod 优先级和抢占(二)
正常情况下,当一个 Pod 调度失败后,它就会被暂时设置 Pending 状态,直到 Pod 被更新,或者集群状态发生变化,调度器才会对Pod 进行重新调度。可以通过 PriorityClass 优先级来避免这种情况。通过设置优先级一些优先级高的 pod,如果 pod 调度失败,并不会被 Pending,而是会驱逐node 上的一些低优先级的 pod,这样可以保证高优先级的 pod 调度成功。...原创 2021-05-06 15:56:37 · 8026 阅读 · 0 评论 -
Kubernetes Pod 优先级和抢占(一)
Kubernetes 1.8+ 版本中可以指定 Pod 的优先级。优先级指示一个 Pod 相对于其它 Pod 的重要性。当 Pod 无法被调度时,scheduler 会尝试抢占(驱逐)低优先级的 Pod,使得这些 Pending pod 可以被调度原创 2021-05-06 10:06:59 · 7996 阅读 · 0 评论 -
【kubernetes/k8s概念】kubernetes scheme原理分析
x原创 2020-04-13 10:25:25 · 10573 阅读 · 0 评论 -
【kubernetes/k8s概念】k8s statefulset 部署 zookeeper
参考: https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/原创 2020-03-26 16:25:16 · 7595 阅读 · 0 评论 -
【kubernetes/k8s源码分析】operator controller-runtime源码分析
operator的原理 kubernetes 自定义扩展资源注册到 controller-manager,通过 list /watch 的方式监听资源的变化,然后在周期内的各个环节做相应的协调处理。所谓的处理就是operator实现由状态的应用的核心部分...原创 2020-03-22 10:04:38 · 8424 阅读 · 0 评论 -
【kubernetes/k8s概念】code-generator 分析
github:https://github.com/kubernetes/code-generator原创 2020-03-22 08:36:41 · 7570 阅读 · 0 评论 -
【kubernetes/k8s源码分析】k8s extender scheduler 分析
Scheduler extender 有三种方式为 kubernetes 添加新的调度规则,包括predicates 和priority 功能,本文讲解第三种方式第一种,直接在 kubernetes 添加调度规则,重新编译 第二种,实现自己的调度,替换 k8s 的 scheduler 第三种,实现 scheduler extender,提供扩展 k8s 调度的一个能力 ...原创 2020-02-28 14:06:49 · 7049 阅读 · 0 评论 -
【kubernetes/k8s源码分析】k8s 性能测试 perf-tests 解读源码
github:https://github.com/kubernetes/perf-tests/tree/master/clusterloader2 pert-tests 是性能测试框架,需要用户自己通过配置文件定义性能测试策略。以kubernetes density 测试为例,clusterloader2 的测试过程 ./clusterloader --ku...原创 2019-10-24 13:51:20 · 8850 阅读 · 1 评论 -
【kubernetes/k8s源码分析】kubemark 解读源码
Kubernetes 社区提供了SLI (服务等级指标) 和 SLO (服务等级目标) 系统性能测试、分析文档Kubernetes scalability and performance SLIs/SLOs。模拟出一个 K8s cluster(Kubemark cluster),不受资源限制。cluster 中 master 是真实的机器,所有的 nodes 是 Hollow nod...原创 2019-10-23 10:03:42 · 6070 阅读 · 2 评论 -
【kubernetes/k8s概念】kube-apiserver admission webhook
WHY 在 Kubernetes 中还有 authn/authz,为什么还会引入 admission 这种机制? 认证鉴权运行在 filter 中,只能获取 http 请求 header 以及证书,并不能获取请求的 body。所以 authn/authz 只能对客户端进行认证和鉴权,不可以对请求的对象进行任何操作 Admission 运行在 API Server 的增...原创 2019-07-03 10:25:51 · 7516 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kube-apiserver admission controller 源码分析
kubernetes git version: v1.14初始化阶段admission代码流程main --> NewAPIServerCommand --> NewServerRunOptions -->kubeoptions.NewAdmissi...原创 2019-07-04 10:11:32 · 7116 阅读 · 1 评论 -
【kubernetes/k8s概念】kube-scheduler启动参数
kubernetes 1.12.1版本Desc The Kubernetes scheduler is a policy-rich, topology-aware, workload-specific function that significantly impacts availability, performance, and capacity. The scheduler...原创 2019-01-05 11:29:51 · 5472 阅读 · 1 评论 -
【kubernetes/k8s源码分析】list-watch etcd 源码解析
kubelet、kube-controller-manager、kube-scheduler监控资源(pod、service等)的变化,当这些对象发生变化时,kube-apiserver会主动通知这些组件。大概是一个发布-订阅系统 组件向apiserver发起的watch可以带条件,scheduler watch的是所有未被调度的Pod,也就是Pod.destNode...原创 2018-06-11 20:14:37 · 7256 阅读 · 0 评论 -
【kubernetes/k8s概念】kube-apiserver启动参数
kubernetes 1.12.1版本DESCThe Kubernetes API server validates and configures data for the api objects which include pods, services, replicationcontrollers, and others. The API Server services REST o...原创 2019-05-30 15:07:54 · 12868 阅读 · 1 评论 -
【kubernetes/k8s概念】helm安装部署ceph
1. Helm简介 为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用。 Helm 采用客户端/服务器架构,如下组件:Helm CLI:命令行客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。 Tiller:是 Helm 的服务端,部署在 K...原创 2019-05-13 15:01:44 · 6633 阅读 · 0 评论 -
【kubernetes/k8s概念】 pv pvc storageclass介绍
问题的引入:Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护。这样就带来一个管理上的问题:应用开发人员和系统管理员的职责耦合在一起了。如果系统规模较小或者对于开发环境这样的情况还可以接受。但当集群规模变大,特别是对于生成环境一. PersistentVolume PersistentVolume (PV) 是外部存储系统中的一块存储空...原创 2019-05-16 09:01:12 · 8302 阅读 · 3 评论 -
【kubernetes/k8s概念】kubectl rollout回滚autoscale自动扩容
kubernetes 滚动升级Kubernetes 中采用ReplicaSet(简称RS)来管理Pod。如果当前集群中的Pod实例数少于目标值,RS 会拉起新的Pod,反之,则根据策略删除多余的Pod。Deployment正是利用了这样的特性,通过控制两个RS里面的Pod,从而实现升级。 滚动升级是一种平滑过渡式的升级,在升级过程中,服务仍然可用。 1. 创建deployment...原创 2018-07-19 17:13:54 · 11230 阅读 · 2 评论 -
【kubernetes/k8s API】k8s client go 接口
1 k8s client 创建k8s client 客户端建立连接,主要是kube config 配置,默认在工作目录~/.kube文件下,包括k8s apiserver地址,认证等配置apiVersion: v1kind: Configcurrent-context: admin-cluster.localpreferences: {}clusters:- cluster:certi...原创 2018-06-14 20:33:53 · 10048 阅读 · 0 评论 -
【kubernetes/k8s概念】pod 的 yaml 解释
apiVersion: v1kind: Pod可以看到由kind、apiVersion、metadata、spec和status等几个部分组成。1 kindkind表明对象。对象(objects):例如Pod、RC、Service、Namespace及Node等2 apiVersion表明API的版本号3 ...原创 2018-06-13 10:17:41 · 9659 阅读 · 0 评论 -
【kubernetes/k8s概念】pod 资源 request 与 limit
参考: Managing Compute Resources for Containershttps://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/Managing Compute Resources for Containersrequestsrequests用于schedule阶段,...原创 2018-06-12 14:00:21 · 24109 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kube-apiserverd go restful 框架使用
go-restful框架概念 简单例子ws := new(restful.WebService)ws. Path("/users"). Consumes(restful.MIME_XML, restful.MIME_JSON). Produces(restful.MIME_JSON, restful.MIME_XML)ws.Route(ws.GET("/{user-id...原创 2018-05-17 09:34:24 · 8734 阅读 · 1 评论 -
【kubernetes/k8s源码分析】创建pod源码分析
1 创建pod流程 具体的创建步骤包括: 1、客户端发起请求,可API Server http请求,也可以kubectl命令行,数据类型包括JSON和YAML 2、API Server处理请求,存储Pod到etcd 3、Scheduler通过API Server查看未绑定的Pod,尝试为Pod分配节点 4、调度预选:Scheduler利用规则过滤掉不符合要求节点。例...原创 2018-04-10 10:30:40 · 6104 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kube-apiserver 启动
kubernetes v1.12一. 序言主要实现了功能一个是请求的路由和处理,简单说就是监听一个端口,把接收到的请求正确地转到相应的处理逻辑上,另一个功能就是认证及权限控制集群管理资源配额控制集群安全机制kube-apiserver --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,Defa...原创 2017-03-29 11:51:47 · 13407 阅读 · 1 评论 -
【kubernetes/k8s 部署】kubernetes 手动二进制部署
本文基于kubernetes 1.12手动二进制部署,可执行文件目录在/opt/k8s/bin etcd:https://github.com/etcd-io/etcd/releases/download/v3.2.25/etcd-v3.2.25-linux-amd64.tar.gz /opt/k8s/bin目录:etcd etcdctl kubectl:h...原创 2017-08-16 10:59:16 · 6968 阅读 · 2 评论 -
【kubernetes/k8s概念】configMap配置管理
ConfigMap概述 ConfigMap API资源提供了将配置注入容器的机制,ConfigMap可用于存储细粒度信息如单个属性,或粗粒度信息如整个配置文件或JSON对象。 ConfigMap API资源存储键/值对配置数据,这些数据可以在pods里使用。ConfigMap跟Secrets类似,但是ConfigMap可以更方便的处理不包含敏感信息的字符串。...原创 2018-07-20 09:18:18 · 15341 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 client-go包之Informer源码分析
kubernetes v1.12: https://github.com/kubernetes/kubernetesInformer 简介 Informer 是 Client-go 中的一个核心工具包。如果 Kubernetes 的某个组件,需要 List/Get Kubernetes 中的 Object(包括pod,service等等),可以直接使用 Informer 实例中...原创 2018-10-09 13:43:44 · 4960 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kube-apiserver的go-restful框架使用
go-restful框架 github:https://github.com/emicklei/go-restful三个重要数据结构1. 初始化 路径pkg/kubelet/kubelet.go中函数NewMainKubeletklet.livenessManager = proberesults.NewManager()// NewManager cr...原创 2018-11-07 10:21:58 · 3066 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 client-go Informer分析
本来想分析informer各个环节源码分析,包括存储 cache deltafifo shareInformer等详细分析,只能挤出零散时间,看到网上非常好得文章,直接看这小伙写的吧,相当赞,可别给删喽 1. 深入浅出kubernetes之client-go的Indexer https://blog.csdn.net/weixin_42663840/article/de...原创 2019-01-23 09:29:12 · 2972 阅读 · 0 评论 -
【kubernetes/k8s概念】CRD CustomResourceDefinition 自定义资源类型
当看istio源码时,发现使用CRD,本文分析Custom Resource DefinitionWHY CRD? 一些特殊的需求,现有资源类型(deploy service statefulset等)满足不了,可以抽象Kubernetes 自定义资源满足需求,WHAT CRD ? k8s1.7 +增加了CRD 二次开发能力来扩展 API...原创 2019-01-19 16:23:50 · 7535 阅读 · 0 评论 -
【kubernetes/k8s概念】Quality of Service 服务质量
WHAT QOS Quality of Service 即服务质量,实现资源被有效调度和分配的同时提高资源利用率, kubernetes 针对不同服务质量的预期,通过 QoS(Quality of Service)来对 pod 进行服务质量管理,当节点上内存资源紧张时,kubernetes 会根据预先设置的不同 QoS 类别进行相应处理 WHY QOS? 如果未对...原创 2019-01-11 18:01:51 · 6487 阅读 · 0 评论 -
【kubernetes/k8s概念】Kubernetes1.12从零开始(初):课程介绍与官方文档汇总
说明 资料和交流方式 Kubernetes的文档介绍 Kubernetes中的术语与资源的操作方法 Kubernetes的API约定与启用方法 Kubernetes中资源(Object)的定义 kubectl命令 Kubernetes集群部署与各个组件的功能和参数详解 Kubernetes官网上的Task Pod和Container操作 集群管理员操作 数据注入应...转载 2019-01-11 17:31:43 · 2981 阅读 · 0 评论 -
【kubernetes/k8s概念】k8s 坑问题汇总
1.Pod始终处于Pending状态 如果Pod保持在Pending的状态,意味着无法被正常的调度到节点上。由于某种系统资源无法满足Pod运行的需求系统没有足够的资源:已经用尽了集群中所有的CPU或内存资源。需要清理一些不在需要的Pod,调整它们所需的资源量,或者向集群中增加新的节点。 用户指定了hostPort:通过hostPort用户能够将服务暴露到指定的主机端口上,会限......原创 2018-12-26 09:43:24 · 37116 阅读 · 7 评论 -
【kubernetes/k8s概念】k8s 网络策略
默认 Pod 是未隔离的,它们可以从任何的源接收请求。Pod 的使用网络策略后,Pod 就会变成隔离的。 一旦 Namespace 中配置的网络策略能够选择一个特定的 Pod,这个 Pod 将拒绝任何该网络策略不允许的连接。(Namespace 中其它未被网络策略选中的 Pod 将继续接收所有流量) 默认情况下,每个Pod之间是可以相互访问的。但在某些场景中,不同的...原创 2018-12-25 20:23:29 · 7555 阅读 · 0 评论