自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 使用etcd-operator在集群内部署etcd集群

什么是operator?​ 在 Operator 里,你提交的 API 对象不再是一个单体应用的描述,而是一个完整的分布式应用集群的描述。这里的区别在于,整个分布式应用集群的状态和定义,都成了Kubernetes 控制器需要保证的“终态”。比如,这个应用有几个实例,实例间的关系如何处理,实例需要把数据存储在哪里,如何对实例数据进行备份和恢复,都是这个控制器需要根据 API 对象的变化进行处理的逻...

2019-03-28 17:47:01 1705

原创 怎么使用kubebuilder构建CRD及相关controller的项目基础

什么是KubebuilderKubebuilder是一个用于在Go中快速构建和发布Kubernetes API的SDK。它建立在用于构建核心Kubernetes API的规范技术之上,以提供简化的抽象来减少开发工作。与Web开发框架(如Ruby on Rails和SpringBoot)类似,Kubebuilder提高了速度并降低了开发人员管理的复杂性。包含在Kubebuilder中:使用...

2019-03-28 17:45:30 3479 2

原创 国内环境使用kubeadm安装部署kubernetes

安装前需要准备工作:1、虚拟机工具VMware、VirtualBox等2、系统镜像文件CentOS 73、安装好虚拟机2-3台本次教程使用的是2台虚拟机:1、10.67.34.130 k8s12、10.67.34.131 k8s2开始整个安装过程:一、2台虚拟机 全部需要进行的操作如下1、设置主机名 (主要是查看node信息 等 时显示的名称就是该名称)hostnamectl...

2019-03-26 20:17:19 1803 1

翻译 go_viper解析

什么是Viper?Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。它支持:设置默认值从JSON,TOML,YAML,HCL和Java属性配置文件中读取实时观看和重新读取配置文件(可选)从环境变量中读取从远程配置系统(etcd或Consul)读取,并观察变化从命令行标志读取从缓冲区读取设置显式...

2019-03-19 19:38:14 3230 3

原创 go_flag

import "flag"flag包实现了命令行参数的解析。要求:使用flag.String(), Bool(), Int()等函数注册flag.常用的flag注册方式1、下例声明了一个整数flag,解析结果保存在*int指针ip里:import "flag"var ip = flag.Int("flagname", 1234, "help message for flagname...

2019-03-19 19:37:31 222

原创 云平台的层次架构

云计算平台​ 云计算是一种资源的服务模式,该模式可以实现随时随地、便捷按需地从可配置计算资源共享池中获取所需的资源(如网络、服务器、存储、应用及服务),资源能够快速供应并释放,大大减少了资源管理工作开销。​ 经典云计算架构包括IaaS ( Infrastructure as a Service,基础设施即服务)、PaaS ( Platform as aService,平台即服务)、S...

2019-03-19 15:03:04 21751

原创 容器监控工具cAdvisor

概述​ cAdvisor ( Container Advisor)是Google开发的用于分析运行中容器的资源占用和性能指标的开源工具。cAdvisor是一个运行时的守护进程,负责收集、聚合、处理和输出运行中容器的信息。需要特别说明的是,对于每个容器,cAdvisor都有资源隔离参数、资源使用历史情况以及完整的历史资源使用和网络统计信息的柱状图。cAdvisor中的数据可以以容器或主机级别进行输...

2019-03-19 15:01:56 553

原创 PaaS平台所使用的服务发现配置存储中心——etcd

概述​ etcd是什么?它是一个键值存储仓库,用于配置共享和服务发现(A highly-available key value store for shared configuration and service discovery)。​ etcd具有以下特点:简单:基于HTTP+JSON的API,用curl命令就可以轻松使用。安全:可选SSL客户认证机制。快速:每个实例每秒支持一千次...

2019-03-19 15:01:13 1261

原创 OVS隧道模式

overlay技术模型​ Overlay网络其实就是隧道技术,即将一种网络协议包装在另一种协议中传输的技术。如果有两个使用IPv6的站点之间需要通信,而它们之间的网络使用IPv4协议,这时就需要将IPv6的数据包装在IPv4数据包中进行传输。隧道被广泛用于连接因使用不同网络而被隔离的主机和网络,使用隧道技术搭建的网络就是所谓的Overlay网络。它能有效地覆盖在基础网络之上,该模型可以很好地解决...

2019-03-19 14:58:56 1432

原创 docker_Dockerfile

Dockerfile的使用​ Dockerfile是Docker用来构建镜像的文本文件,包含自定义的指令和格式。可以通过docker build命令从Dockerfile中构建镜像。这个过程与传统分布式集群的编排配置过程相似,且提供了一系列统一的资源配置语法。用户可以用这些统一的语法命令来根据需求进行配置,通过这份统一的配置文件,在不同的平台上进行分发,需要使用时就可以根据配置文件自动化构建,这...

2019-03-19 14:56:37 124

原创 kubernetes多租户管理与资源控制

namespace设计解读​ namespace是Kubernetes进行多租户资源隔离的主要手段,那么它在系统中的表现形式是什么样的?实现原理和使用方法又是怎样的呢?什么是namespace​ namespace是一个将Kubernetes的资源对象进行细分的类似于DNS子域名的概念。namespace能够帮助不同的租户共享一个Kubernetes集群。Kubernetes引人namesp...

2019-03-15 11:36:21 6295

原创 kubernetes网络核心原理

单pod单IP模型​ 该网络模型的目标是为每个pod分配一个Kubernetes集群私有网络地址段(譬如10.x.x.x)的IP地址,通过该IP地址,pod能够跨网络与其他物理机、虚拟机或容器进行通信,pod内的容器全部共享这pod的网络配置,彼此之间使用localhost通信,就仿佛它们运行在一个机器上一样。​ 为每个pod分配一个IP地址的另一个好处是用户不再需要显式为相互通信的p...

2019-03-15 11:32:37 756

原创 kubernetes存储核心原理

volume设计解读​ 在Kubernetes中,volume的使用方式类似于虚拟机的磁盘,需要给pod(即一个逻辑上的虚拟机)挂一个磁盘,然后该pod里的进程(容器)才能通过volumeMounts的方式使用挂载磁盘。pod容器内的进程能够看到的文件系统由两部分组成:一部分是Docker像文件系统,另一部分是零或多个volume。每个容器都会单独指定每个volume在其内部的挂载点,即pod资...

2019-03-15 11:30:45 625

原创 kubernetes核心组件解读

kubenetes的整体架构​ Kubernetes由两种节点组成:master节点和工作节点,前者是管理节点,后者是容器运行的节点。其中master节点中主要有3个重要的组件,分别是APIServer,scheduler和controller manager。APIServer组件负责响应用户的管理请求、进行指挥协调等工作;scheduler的作用是将待调度的pod绑定到合适的工作节点上;co...

2019-03-15 11:28:34 3032

原创 kubernetes设计解读

pod设计解读在Kubernetes中,能够被创建、调度和管理的最小单元是pod,而非单个容器。前面已经说过,一个pod是由若干个Docker容器构成的容器组(pod意为豆荚,里面容纳了多个豆子,很形象)。这里需要强调的是,pod里的容器共享network namespace,并通过volume机制共享一部分存储。pod是IP等网络资源的分配的基本单位,这个IP及其对应的network na...

2019-03-15 11:14:43 856

原创 docker与容器安全

Docker的安全机制​ Docker目前已经在安全方面做了一定的工作,包括Docker daemon在以TCP形式提供服务的同时使用传输层安全协议;在构建和使用镜像时会验证镜像的签名证书;通过cgroups及namespaces来对容器进行资源限制和隔离;提供自定义容器能力(capability)的接口;通过定义seccomp profile限制容器内进程系统调用的范围等。如果合理地实...

2019-03-12 18:12:02 5884

原创 docker网络管理

Docker网络基础Docker网络架构​ 如图3-16所示,Docker daemon通过调用libnetwork对外提供的API完成网络的创建和管理等功能。libnetwork中则使用了CNM来完成网络功能的提供。而CNM中主要有沙盒(sandbox ),端点(endpoint)和网络(network)这3种组件。libnetwork中内置的5种驱动则为libnetwork提供了不同类...

2019-03-12 18:11:07 1413

原创 docker数据卷

​ Docker的镜像是由一系列的只读层组合而来的,当启动一个容器时,Docker加载镜像的所有只读层,并在最上层加人一个读写层。这个设计使得Docker可以提高镜像构建、存储和分发的效率,节省了时间和存储空间,然而也存在如下问题:​容器中的文件在宿主机上存在形式复杂,不能在宿主机上很方便地对容器中的文件进行访问。多个容器之间的数据无法共享。当删除容器时,容器产生的数据将丢失。为了解决...

2019-03-12 18:09:13 1021

原创 docker存储管理

​ Docker有镜像分层、写时复制机制以及内容寻址存储(content-addressable storage)这些特性,为了支持这些特性,Docker设计了一套镜像元数据管理机制来管理镜像元数据。另外,为了能够让Docker容器适应不同平台不同应用场景对存储的要求,Docker提供了各种基于不同文件系统实现的存储驱动来管理实际镜像文件。Docker镜像元数据管理​ Docker镜像在设计上...

2019-03-12 18:08:14 688

原创 docker 镜像管理

什么是docker镜像Docker镜像是一个只读的Docker容器模板,含有启动Docker容器所需的文件系统结构及其内容,因此是启动一个Docker容器的基础。Docker镜像的文件内容以及一些运行Docker容器的配置文件组成了Docker容器的静态文件系统运行环境一rootfs。可以这么理解,Docker镜像是Docker容器的静态视角,Docker容器是Docker像的运行状态。r...

2019-03-12 18:03:16 788

原创 docker-libcontainer

libcontainer的工作方式execdriver如何调用libcontainer加载容器配置container,继而创建真正的Docker容器?创建libcontaine构建容器需要使用的“进程”,进程对象(非真正进程),称为Process;设置容器的输出管道,这里使用的就是Docker daemon提供给libcontainer的pipes;使用名为Factory的工厂类,通过f...

2019-03-12 18:00:53 548

原创 docker-client模式和daemonm模式

client模式Docker命令对应的源文件是docker/docker.go,它的使用方式如下:docker [OPTIONS] COMMAND [arg ...]其中OPTIONS参数称为flag,任何时候执行一个docker命令,Docker都需要先解析这些flag,然后按照用户声明的COMMAND向子命令执行对应的操作。​ 如果子命令为daemon,Docker就会创建一个运行在...

2019-03-12 17:59:45 2036

原创 docker架构分析

Docker架构总览​ docker使用传统的cs架构,总架构图如下所示。用户通过Docker client与Docker daemon简历通信,并将请求发送给后者。​ 从上图可以看出,Docker daemon是Docker架构中的主要用户接口。首先,它提供了API Server用于接收来自Docker client的请求,其后根据不同的请求分发给Docker daemon的不同模块执行相...

2019-03-12 17:57:29 260

原创 docker内核知识

Docker内核知识Docker容器本质上是宿主机上的进程。Docker通过namespaces实现了资源隔离,通过cgroups实现了资源限制,通过写时复制机制(copy-on-write)实现了高效的文件操作。namespaces资源隔离​ 想要实现一个资源隔离的容器,首先,根目录/的挂载点需要切换,即文件系统需要隔离;接着,为了在分布式的环境下进行通信和定位,容器必然要有独立的IP、端...

2019-03-12 17:55:40 225

原创 http.HandleFunc 解析

func HandleFunc(pattern string, handler func(ResponseWriter, *Request))HandleFunc注册一个处理器函数handler和对应的模式pattern(注册到DefaultServeMux)。HandleFunc 的第一个参数指的是请求路径,第二个参数是一个函数类型,表示这个请求需要处理的事情。没有处理复杂的逻辑,...

2019-03-04 16:09:22 5637

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除