
Kubernetes
文章平均质量分 91
胡伟煌
容器云相关生态技术研究(Docker,Kubernetes等)
展开
-
StorageClass
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/storage/storage-class.htmlStorageClass1. StorageClass概述StorageClass提供了一种描述存储类(class)的方法,不同的class可能会映射到不同的服务质量等级和备份策略或其他策略等。StorageClass 对象中包含...原创 2019-07-15 20:30:21 · 8598 阅读 · 0 评论 -
kube-scheduler源码分析(三)之 scheduleOne
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/scheduleOne.htmlkube-scheduler源码分析(三)之 scheduleOne以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析/pkg/scheduler/中调度的基本流程。...原创 2019-07-15 20:05:42 · 1105 阅读 · 0 评论 -
kube-scheduler源码分析(二)之 registerAlgorithmProvider
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/registerAlgorithmProvider.htmlkube-scheduler源码分析(二)之 registerAlgorithmProvider以下代码分析基于 kubernetes v1.12.0 版本。此部...原创 2019-07-15 20:03:47 · 578 阅读 · 0 评论 -
kube-scheduler源码分析(一)之 NewSchedulerCommand
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/NewSchedulerCommand.htmlkube-scheduler源码分析(一)之 NewSchedulerCommand以下代码分析基于 kubernetes v1.12.0 版本。scheduler的cmd代...原创 2019-07-15 20:02:29 · 576 阅读 · 0 评论 -
kube-controller-manager源码分析(三)之 Informer机制
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-controller-manager/sharedIndexInformer.htmlkube-controller-manager源码分析(三)之 Informer机制以下代码分析基于 kubernetes v1.12.0 版本。本文主要分...原创 2019-07-15 20:00:59 · 1799 阅读 · 0 评论 -
kube-controller-manager源码分析(二)之 DeploymentController
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-controller-manager/deployment-controller.htmlkube-controller-manager源码分析(二)之 DeploymentController以下代码分析基于 kubernetes v1.12....原创 2019-07-15 19:57:13 · 873 阅读 · 0 评论 -
kube-controller-manager源码分析(一)之 NewControllerManagerCommand
kube-controller-manager源码分析(一)之 NewControllerManagerCommand以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析https://github.com/kubernetes/kubernetes/tree/v1.12.0/cmd/kube-controller-manager 部分的代码。本文主要分析 kube...原创 2019-07-15 19:55:32 · 951 阅读 · 0 评论 -
kube-apiserver源码分析(一)之 NewAPIServerCommand
kube-apiserver源码分析(一)之 NewAPIServerCommand以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析kube-apiserver中cmd部分的代码,即NewAPIServerCommand相关的代码。更多具体的逻辑待后续文章分析。kube-apiserver的cmd部分目录代码结构如下:kube-apiserver├── ap...原创 2019-07-15 19:54:37 · 1009 阅读 · 0 评论 -
kubernetes存储详解
1. Volumes1.1. volume概述容器上的文件生命周期同容器的生命周期一致,即容器挂掉之后,容器将会以最初镜像中的文件系统内容启动,之前容器运行时产生的文件将会丢失。Pod的volume的生命周期同Pod的生命周期一致,当Pod被删除的时候,对应的volume才会被删除。即Pod中的容器重启时,之前的文件仍可以保存。容器中的进程看到的是由其 Docker 镜像和卷...原创 2018-09-01 14:10:20 · 4992 阅读 · 0 评论 -
nfs-client-provisioner源码分析
如果要开发一个Dynamic Provisioner,需要使用到the helper library。1. Dynamic Provisioner1.1. Provisioner Interface开发Dynamic Provisioner需要实现Provisioner接口,该接口有两个方法,分别是:Provision:创建存储资源,并且返回一个PV对象。Del...原创 2018-08-25 15:49:57 · 5479 阅读 · 0 评论 -
kube-scheduler源码分析(四)之 findNodesThatFit
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/findNodesThatFit.htmlkube-scheduler源码分析(四)之 findNodesThatFit以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析调度逻辑中的预选策略,即第一...原创 2019-07-15 20:06:58 · 673 阅读 · 0 评论 -
kube-scheduler源码分析(五)之 PrioritizeNodes
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/PrioritizeNodes.htmlkube-scheduler源码分析(五)之 PrioritizeNodes以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析优选策略逻辑,即从预选的节点中选...原创 2019-07-15 20:08:23 · 495 阅读 · 0 评论 -
kube-scheduler源码分析(六)之 preempt
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kube-scheduler/preempt.htmlkube-scheduler源码分析(六)之 preempt以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析调度中的抢占逻辑,当pod不适合任何节点的时候,可能pod会调度...原创 2019-07-15 20:09:36 · 935 阅读 · 0 评论 -
PersistentVolumeClaim
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/storage/persistent-volume-claim.htmlPersistentVolumeClaim1. PVC概述PersistentVolumeClaim(简称PVC)是用户存储的请求,PVC消耗PV的资源,可以请求特定的大小和访问模式,需要指定归属于某个Names...原创 2019-07-15 20:29:28 · 16318 阅读 · 0 评论 -
Dynamic Volume Provisioning
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/storage/dynamic-provisioning.htmlDynamic Volume ProvisioningDynamic volume provisioning允许用户按需自动创建存储卷,这种方式可以让用户不需要关心存储的复杂性和差别,又可以选择不同的存储类型。1. 开...原创 2019-07-15 20:27:01 · 1244 阅读 · 0 评论 -
csi-provisioner源码分析
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/develop/csi-provisioner.html本文主要分析csi-provisioner的源码,关于开发一个Dynamic Provisioner,具体可参考nfs-client-provisioner的源码分析1. Dynamic Provisioner1.1. Pr...原创 2019-07-15 20:25:10 · 1539 阅读 · 0 评论 -
12-Factor(要素)
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/paas/12-factor.html以下主要介绍PaaS平台设计架构中使用到的方法论,统称为12-Factor(要素)简介软件通常会作为一种服务来交付,即软件即服务(SaaS)。12-Factor原则为构建SaaS应用提供了以下的方法论:使用标准化流程自动配置,减少开发者的...原创 2019-07-15 20:23:09 · 1451 阅读 · 1 评论 -
kubelet源码分析(五)之 syncPod
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kubelet/syncPod.htmlkubelet源码分析(五)之 syncPod以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析kubelet中syncPod的部分。1. managePodLoopmanagePod...原创 2019-07-15 20:15:20 · 2133 阅读 · 0 评论 -
kubelet源码分析(四)之 syncLoopIteration
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kubelet/syncLoopIteration.htmlkubelet源码分析(四)之 syncLoopIteration以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析kubelet中syncLoopIteration部...原创 2019-07-15 20:14:14 · 1309 阅读 · 0 评论 -
kubelet源码分析(三)之 startKubelet
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kubelet/startKubelet.htmlkubelet源码分析(三)之 startKubelet以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析startKubelet,其中主要是kubelet.Run部分,该部分的...原创 2019-07-15 20:13:13 · 1218 阅读 · 0 评论 -
kubelet源码分析(二)之 NewMainKubelet
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kubelet/NewMainKubelet.htmlkubelet源码分析(二)之 NewMainKubelet以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析 https://github.com/kubernetes/ku...原创 2019-07-15 20:12:00 · 868 阅读 · 0 评论 -
kubelet源码分析(一)之 NewKubeletCommand
本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/code-analysis/kubelet/NewKubeletCommand.htmlkubelet源码分析(一)之 NewKubeletCommand以下代码分析基于 kubernetes v1.12.0 版本。本文主要分析 https://github.com/kuberne...原创 2019-07-15 20:11:04 · 926 阅读 · 0 评论 -
使用minikube快速部署k8s集群
以下内容基于Linux系统,特别为Ubuntu系统1. 安装kubectlcurl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/...原创 2018-08-08 12:36:49 · 7723 阅读 · 1 评论 -
使用kubespary安装k8s集群
1. 环境准备1.1. 部署机器 以下机器为虚拟机 机器IP 主机名 角色 系统版本 备注 172.16.94.140 kube-master-0 k8s master Centos 4.17.14 内存:3G 172.16.94.141 kube-node-41 k8s node Centos 4.17....原创 2018-08-11 17:59:07 · 4937 阅读 · 0 评论 -
基于Docker及Kubernetes技术构建容器云(PaaS)平台概述
本文个人博客地址为:http://www.huweihuang.com/article/kubernetes/paas-based-on-docker&kubernetes/本文个人博客地址为:https://huweihuang.net/article/kubernetes/paas-based-on-docker&kubernetes/【编者的话】目前很多的容器云平台通过Doc...原创 2017-07-23 17:39:38 · 44701 阅读 · 1 评论 -
Kubernetes基本概念(二)之k8s常用对象说明
1. Master集群的控制节点,负责整个集群的管理和控制,kubernetes的所有的命令基本都是发给Master,由它来负责具体的执行过程。1.1. Master的组件kube-apiserver:资源增删改查的入口kube-controller-manager:资源对象的大总管kube-scheduler:负责资源调度(Pod调度)etcd Server:kubern原创 2017-08-09 21:30:06 · 7756 阅读 · 0 评论 -
Kubernetes核心原理(四)之Kubelet
1. kubelet简介在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成【Server-Agent】架构中的agent,是Node上的pod管家。原创 2017-09-10 15:04:25 · 25033 阅读 · 2 评论 -
Kubernetes基本概念(三)之Pod详解
1. Pod的定义文件apiVersion: v1kind: Podmetadata: name: string namaspace: string labels: - name: string annotations: - name: stringspec: containers: - name: string images: string i原创 2017-09-28 16:27:36 · 19038 阅读 · 4 评论 -
Kubernetes API分类汇总
1. 资源对象1.1. Namespace 分类 说明 方法 API 查 list or watch objects of kind Namespace GET /api/v1/namespaces read the specified Namespace GET /api/v1/namespaces/{name} 增 create a Nam原创 2017-09-10 14:51:37 · 4093 阅读 · 1 评论 -
Kubernetes网络原理
1. kubernetes网络模型1.1. 基础原则每个Pod都拥有一个独立的IP地址,而且假定所有Pod都在一个可以直接连通的、扁平的网络空间中,不管是否运行在同一Node上都可以通过Pod的IP来访问。k8s中Pod的IP是最小粒度IP。同一个Pod内所有的容器共享一个网络堆栈,该模型称为IP-per-Pod模型。Pod由docker0实际分配的IP,Pod内部看到的IP地址和端口与外部保原创 2017-09-10 14:33:59 · 17565 阅读 · 0 评论 -
Flannel介绍
一、flannel是什么(what)(一)概述Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。 Flannel官网:https://github.com/coreos/flannel(二)补充知识点1、覆盖网络[overlay network]运行在一个网上的网(应用层网原创 2017-09-08 21:09:35 · 14068 阅读 · 1 评论 -
Kubernetes核心原理(一)之API Server
1. API Server简介k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。kubernetes API Server的功能:提供了集群管理的REST API接口(包括认证授权、数据校验以及集群状态变更);提供其他模块之间的数据交互和通信的枢纽(其他模块通原创 2017-07-21 23:17:14 · 16672 阅读 · 0 评论 -
kubernetes集群问题排查
本文个人博客地址为:http://www.huweihuang.com/article/kubernetes/kubernetes-troubleshooting/本文个人博客地址为:https://huweihuang.net/article/kubernetes/kubernetes-troubleshooting/1. 查看系统Event事件kubectl describe pod <...原创 2017-05-07 10:48:36 · 26035 阅读 · 0 评论 -
Kubernetes核心原理(三)之Scheduler
1. Scheduler简介Scheduler负责Pod调度。在整个系统中起"承上启下"作用,承上:负责接收Controller Manager创建的新的Pod,为其选择一个合适的Node;启下:Node上的kubelet接管Pod的生命周期。Scheduler:1)通过调度算法为待调度Pod列表的每个Pod从Node列表中选择一个最适合的Node,并将信息写入etcd中原创 2017-08-09 21:34:21 · 4450 阅读 · 0 评论 -
Kubernetes总架构图
本文个人博客地址为:http://www.huweihuang.com/article/kubernetes/kubernetes-architecture/本文个人博客地址为:https://huweihuang.net/article/kubernetes/kubernetes-architecture/1. Kubernetes的总架构图2. Kubernetes各个组件介绍2.1. kub...原创 2017-05-07 10:30:10 · 57002 阅读 · 1 评论 -
Kubernetes运维指南(一)之指定Node调度与隔离
1. NodeSelector1.1. 概念如果需要限制Pod到指定的Node上运行,则可以给Node打标签并给Pod配置NodeSelector。1.2. 使用方式1.2.1. 给Node打标签# get node的namekubectl get nodes# 设置Labelkubectl label nodes &lt;node-name&gt; &...原创 2018-07-01 17:15:24 · 5788 阅读 · 0 评论 -
client-go的使用及源码分析
本文个人博客地址:http://www.huweihuang.com/article/source-analysis/client-go-source-analysis/1. client-go简介1.1 client-go说明 client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包原创 2017-12-16 20:21:12 · 29208 阅读 · 2 评论 -
Kubernetes监控体系(三)之Heapster介绍
1. heapster简介Heapster是容器集群监控和性能分析工具,支持Kubernetes和CoreOS。 Kubernetes有个监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime)。2. heapster部署与配置2.1原创 2017-09-08 21:24:42 · 8223 阅读 · 1 评论 -
Kubernetes监控体系(二)之cAdvisor介绍
1. cAdvisor简介 cAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务的原创 2017-09-09 22:24:04 · 11445 阅读 · 1 评论 -
Kubernetes监控体系(一)之集群监控概述
1. 概述1.1. cAdvisorcAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务原创 2017-09-08 21:40:39 · 5045 阅读 · 1 评论