12 2018 档案
摘要:[TOC] 一、概念介绍 1、CDH 概览 CDH是Apache Hadoop和相关项目的最完整、最受测试和最流行的发行版。CDH提供Hadoop的核心元素 可伸缩存储和分布式计算 以及基于web的用户界面和重要的企业功能。CDH是Apache许可的开放源码,是唯一提供统一批处理、交互式SQL和交互
阅读全文
摘要:[TOC] 一、Spark 是什么 Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用分布式并行计算框架。Spark拥有hadoop MapReduce所具有的优点,但和MapReduce 的最大不同之处在于Spark是基于内存的迭代式计算——Spar
阅读全文
摘要:[TOC] 一、Hive 简介 1、什么是 Hive Hive 由 Facebook 实现并开源,是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能,底层数据是存储在 HDFS 上。 Hive 的本质是将 SQL 语句转换为 M
阅读全文
摘要:[TOC] 一、HBase是什么 HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。 HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 它是Hadoop的生态
阅读全文
摘要:[TOC] 一、Hadoop 介绍 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。 1、HDFS 介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System)
阅读全文
摘要:[TOC] 一、Zookeeper功能简介 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服
阅读全文
摘要:[TOC] 一、软硬件规划 | ID | 主机类型 | 主机名 | IP | 应用软件 | 操作系统 | 硬件配置 | | | | | | | | | | 1 | 物理机 | namenode01 | 192.168.1.200 | jdk1.8.0_171、hadoop 2.7.3、hive 2.
阅读全文
摘要:[TOC] Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;Fluentd 负责从 Kubernetes
阅读全文
摘要:[TOC] 一、Prometheus 介绍 Prometheus Operator 是 CoreOS 开发的基于 Prometheus 的 Kubernetes 监控方案,也可能是目前功能最全面的开源方案。 Prometheus Operator 通过 Grafana 展示监控数据,预定义了一系列的
阅读全文
摘要:[TOC] heapster 已经 deprecated 了:https://github.com/kubernetes/heapster,所以下面的演示主要针对 Kubernetes 1.10 之前的版本,我这里是新版本,所以是收集不到数据的。 一、Heapster 介绍 Heapster 是容器
阅读全文
摘要:[TOC] 创建 Kubernetes 集群并部署容器化应用只是第一步。一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求。Kubernetes 是一个复杂系统,运维团队需要有一套工具帮助他们获知集群的实时状态,并为故障排查提供及时和准确的数据支持。 一、
阅读全文
摘要:[TOC] 一、RBAC介绍 在Kubernetes中,授权有ABAC(基于属性的访问控制)、RBAC(基于角色的访问控制)、Webhook、Node、AlwaysDeny(一直拒绝)和AlwaysAllow(一直允许)这6种模式。 从1.6版本起,Kubernetes 默认启用RBAC访问控制策略
阅读全文
摘要:[TOC] 一、背景 1.1 需求 我们有这样的一个需求,就是把 Pod 集群升级为 https,目前的办法就是要么每个容器配置 https,然后前端通过 Service 进行调度,但是这样配置起来会比较麻烦,以及每个容器的建立都通过 https ,也增加了建立连接的负担。 我们需要一种这样的改造,
阅读全文
摘要:[TOC] 与 Docker 默认的网络模型不同,Kubernetes 形成了一套自己的网络模型,该网络模型更加适应传统的网络模式,应用能够平滑的从非容器环境迁移到 Kubernetes 环境中。 自从 Docker 容器出现,容器的网络通信一直是众人关注的焦点,而容器的网络方案又可以分为两大部分:
阅读全文
摘要:[TOC] Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的。为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管
阅读全文
摘要:[TOC] 一、背景 很多情况下我们为某一应用做好镜像,当我们想修改其中的一些参数的时候,就变得比较麻烦,又要重新制作镜像,我们是不是有一种方式,让镜像根据不同的场景调用我们不同的配置文件呢,那我们就需要用到 k8s 的另外一种资源,那就是 ConfigMap。 我们知道,在几乎所有的应用开发中,都
阅读全文
摘要:[TOC] 一、规划 我们接着之前的文档的架构规划进行下面的操作。 | IP | 角色 | | | | | 192.168.1.200 | k8s master | | 192.168.1.201 | k8s node01 | | 192.168.1.202 | k8s node02 | | 192
阅读全文
摘要:[TOC] 为了持久化保存容器的数据,可以使用 Kubernetes Volume。 Volume 的生命周期独立于容器,Pod 中的容器可能被销毁和重建,但 Volume 会被保留。 本质上,Kubernetes Volume 是一个目录,这一点与 Docker Volume 类似。当 Volum
阅读全文
摘要:强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用 和 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署。 避免部署无效的镜像。 更加安全的滚动升级。 一、Liveness 探测 Liveness
阅读全文
摘要:一、环境准备 我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文。 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。 二、更新 我们查看一下上一节的配置文件
阅读全文
摘要:一、背景介绍 我们这里准备三台机器,一台master,两台node,采用kubeadm的方式进行安装的,安装过程大家可以参照我之前的 "博文" 。 | IP | 角色 | 版本 | | | | | | 192.168.1.200 | master | kubeadm v1.13.0 | | 192.
阅读全文
摘要:一、Deployment、ReplicaSet、Pod之间的关系 我们接着前面的文章说,如果不清楚的请查看之前的博文:http://blog.51cto.com/wzlinux/2322616 前面我们已经了解到,Kubernetes 通过各种 Controller 来管理 Pod 的生命周期。为了
阅读全文
摘要:一、安装方式介绍 1、yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能获得最新版本的软件,而所有软件的依赖又不能自己指定,尤其是你的操作系统版本如果低的话,使用 yum
阅读全文
摘要:在之前的文章,我们已经演示了 " yum" 和 "二进制" 方式的安装方式,本文我们将用官方推荐的 来进行安装部署。 是 Kubernetes 官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新, 会对集群配置方面的一些实践做调整,通过实验 可以
阅读全文
摘要:一、安装方式介绍 1、yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能获得最新版本的软件,而所有软件的依赖又不能自己指定,尤其是你的操作系统版本如果低的话,使用 yum
阅读全文
摘要:一、安装方式介绍 1、yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能获得最新版本的软件,而所有软件的依赖又不能自己指定,尤其是你的操作系统版本如果低的话,使用 yum
阅读全文
摘要:[TOC] 一、Kubernetes 是什么 Kubernetes是当今最流行的开源容器管理平台,它就是大名鼎鼎的Google Borg的开源版本。Google在2014年推出了Kubernetes,本文发布时最新的版本是1.11。 Kubernetes源于希腊语,意为舵手,K8S是一个简称,因为首
阅读全文
摘要:[TOC] 一、Docker Swarm 概念 1、集群 从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群。所以先来讨论一个重要的概念 集群化(Clustering)。 服务器集群由一组网络上相互连接的服务器组成,它们一起协同工作。一个集群和一堆服务器最显著的区别在
阅读全文
摘要:[TOC] 一、跨主机网络概述 前面已经学习了 Docker 的几种网络方案:none、host、bridge 和 joined 容器,它们解决了单个 Docker Host 内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案。 docker 原生的 overlay 和 macvlan。 第
阅读全文
摘要:[TOC] 一、Docker Machine 总览 前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的。但在真正的环境中会有多个 host,容器在这些 host 中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的 host。 用
阅读全文
摘要:[TOC] 一、storage driver 作用 正常情况下,只有很少量的数据被写入到容器最上层的写入层,并且通过 volume 来写数据,然而我们也会遇到一些情况需要我们可以直接写入到容器的写入层,这我们就需要到了 storage driver 来帮忙。 Docker 使用一些列不同的 stor
阅读全文
摘要:[TOC] 一、Docker 数据存储 我们都知道 Docker 的数据可以存在容器的可写层,但是也存在以下几点不足: 1. 当该容器不再运行时,数据将不会持久存储,如果另一个进程需要它,就很难将数据从容器中取出。 1. 容器的可写层与 Docker Host 在容器运行时紧密耦合,你不能轻易地把数
阅读全文
摘要:[TOC] 一、容器间通信 1、IP 通信 两个容器要能通信,必须要有属于同一个网络的网卡。满足这个条件后,容器就可以通过 IP 交互了。具体做法是在容器创建时通过 指定相应的网络,或者通过 将现有容器加入到指定网络。 2、Docker DNS Server 通过 IP 访问容器虽然满足了通信的需求
阅读全文
摘要:[TOC] Docker 通过网络驱动来支持容器的网络通信,默认情况下,Docker 提供两种网络驱动供我们使用,一个是 bridge,一个是 overlay。我们也可以自己写一个网络驱动插件,如果你足够大牛的话。 Docker 安装时会自动在 host 上创建三个网络,我们可用 命令查看: 一、n
阅读全文
摘要:[TOC] 一、简介 Linux Namespace 是 Linux 提供的一种内核级别环境隔离的方法。不知道你是否还记得很早以前的 Unix 有一个叫 chroot 的系统调用(通过修改根目录把用户 jail 到一个特定目录下),chroot 提供了一种简单的隔离模式:chroot 内部的文件系统
阅读全文
摘要:[TOC] 一、cgroup简介 docker 通过 cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。 cgroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如
阅读全文
摘要:[TOC] 一、运行容器 1、运行第一个容器 现在,让我们尝试启动第一个 Docker 容器。我们可以使用 命令创建容器, 命令提供了 Docker 容器的创建到启动的功能。 容器启动时执行 /bin/bash,我们会进入容器的交互界面,我们可以通过 exit 退出容器。执行 可以查看正在运行的容器
阅读全文
摘要:[TOC] 一、搜索镜像 很多情况下我们可能需要下载某一类别的镜像,这时候我们就会用到搜索功能,也可以去 docker hub 官网页面搜索。 使用语法如下。 我们可以看到,第一个镜像是没有用户名的,并且 OFFICIAL 是 OK,这样的镜像是由 Docker 公司进行维护的。 二、下载镜像 使用
阅读全文
摘要:[TOC] 一、为镜像命名 无论采用何种方式保存和分发镜像,首先都得给镜像命名。 当我们执行 docker build 命令时已经为镜像取了个名字,例如前面: 这里的 ubuntu_with_apache_dockerfile 就是镜像的名字。通过 可以查看镜像的信息。 这里注意到 ubuntu_w
阅读全文
摘要:[TOC] 构建镜像 前面我们使用各种镜像进行测试演示,很多情况下我们是需要自己的镜像,满足自己业务需要的镜像,这就需要我们能够定制自己需要的镜像,构建 Docker 镜像有以下两种方法。 使用 docker commit 命令。 使用 docker build 命令和 Dockerfile 构建文
阅读全文
摘要:[TOC] 一、base镜像 base 镜像简单来说就是不依赖其他任何镜像,完全从0开始建起,其他镜像都是建立在他的之上,可以比喻为大楼的地基,docker镜像的鼻祖。 base 镜像有两层含义:(1)不依赖其他镜像,从 scratch 构建;(2)其他镜像可以之为基础进行扩展。 所以,能称作 ba
阅读全文
摘要:[TOC] 一、初步了解 1、docker run运行容器 我们运行第一个 docker 容器 hello world,过程如下图: 1.Docker 客户端执行 docker run 命令。 2.Docker daemon 发现本地没有 hello world 镜像。 3.daemon 从 Doc
阅读全文
摘要:[TOC] 一、什么是Dcoker 相信docker是什么大家都已经比较清楚了,网上有很详细的介绍,我这里只是大概描述一下。 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机
阅读全文
摘要:[TOC] 一、容器核心技术 一谈到容器,我们都会想到 Docker。 Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,我们也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术
阅读全文
摘要:[TOC] 1、设置时区 2、配置内网IP (如果是外网IP,linux要修改远程端口) 3、配置自己的yum源 如何需要最新版本的rpm包,请安装下面的仓库 4、关闭SELinux 5、添加zabbix监控 6、关闭防火墙和NM 7、安装软件包 8、时间同步任务 9、配置主机名 10、修改文件句柄
阅读全文
摘要:1、设置时区 2、配置内网IP (如果是外网IP,linux要修改远程端口) 3、配置自己的yum源 或者 如何需要最新版本的rpm包,请安装下面的仓库 4、关闭SELinux 5、添加zabbix监控 6、配置防火墙 7、安装软件包 8、配置定时任务 9、配置主机名 10、修改文件句柄数 11、可
阅读全文
摘要:1、设定时区 2、配置apt get源 3、修改主机名 4、安装软件包 5、开启root登录 Ubuntu 14.04 Ubuntu 16.04 重启服务 6、踢出终端tty用户 7、删除普通用户 8、时间同步 9、安装监控系统 10、配置pip国内源 mkdir .pip cat .pip/pip
阅读全文