- 博客(33)
- 收藏
- 关注
原创 k8s存储方式的介绍及应用 (持久化,mysql对数据持久化的应用)
k8s存储: (持久化)docker容器是有生命周期的。volume1,存储类(Storage class)是k8s资源类型的一种,它是有管理员为管理PV更加方便创建的一个逻辑组,可以按照存储系统的性能高低,或者综合服务质量,备份策略等分类。不过k8s本身不知道类别到底是什么,它这是作为一个描述。2,存储类的好处之一就是支持PV的动态创建,当用户用到持久性存储时,不必再去提前创建PV,而是直接创建PVC就可以了,非常的方便。3,存储类对象的名称很重要,并且出了名称之外,还有3个关键字段Provi
2020-07-10 08:55:14
1486
原创 k8s的Job/CronJob资源对象及添加api版本
Job资源对象**服务类的Pod容器:**RC、RS、DS、Deployment**工作类的Pod容器:**Job—>执行一次,或者批量执行处理程序,完成之后退出容器。注意: 如果容器内执行任务有误,会根据容器的重启策略操作容器,不过这里的容器重启策略只能是: Never和 OnFailure。概念在有些场景下,是想要运行一些容器执行某种特定的任务,任务一旦执行完成,容器也就没有存在的必要了。在这种场景下,创建pod就显得不那么合适。于是就是了Job,Job指的就是那些一次性任务。通过
2020-07-10 08:51:17
1364
原创 k8s的ReplicaSet,DaemonSet及标签
环境介绍主机IP地址服务master192.168.1.21k8snode01192.168.1.22k8snode02192.168.1.23k8s基于 https://blog.51cto.com/14320361/2464655 的实验继续进行ReplicaSet简单介绍1. RC:ReplicationController(老一代的pod控制器)用来确保由其管控的Pod对象副本数量,能够满足用户期望,多则删除,少则通过模本创建特点:确
2020-07-10 08:49:50
791
原创 pod健康检查详解(liveness,readiness,滚动更新)
环境介绍主机IP地址服务master192.168.1.21k8s+httpd+nginxnode01192.168.1.22k8snode02192.168.1.23k8s基于 https://blog.51cto.com/14320361/2464655 的实验继续进行一、Pod的liveness和readiness探针Kubelet使用liveness probe(存活探针)来确定何时重启容器。例如,当应用程序处于运行状态但无法做进一步操作,l
2020-07-10 08:44:19
5274
原创 k8s中pod的资源对象(名称空间,获取策略,重启策略,健康检查)
一,k8s的资源对象Deployment、Service、Pod是k8s最核心的3个资源对象**Deployment:**最常见的无状态应用的控制器,支持应用的扩缩容、滚动升级等操作。**Service:**为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接口,用于服务发现和服务访问。**Pod:**是运行容器以及调度的最小单位。同一个pod可以同时运行多个容器,这些容器共享net、UTS、IPC,除此之外还有USER、PID、MOUNT。**ReplicationController:
2020-07-10 08:42:25
2695
原创 k8s创建资源(3)(负载均衡原理,回滚指定版本,label控制pod的位置)
Deployment介绍Deployment是kubernetes 1.2引入的概念,用来解决Pod的编排问题。Deployment可以理解为RC的升级版(RC+Reolicat Set)。特点在于可以随时知道Pod的部署进度,即对Pod的创建、调度、绑定节点、启动容器完整过程的进度展示。使用场景创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建过程。检查Deployment的状态来确认部署动作是否完成(Pod副本的数量是否达到预期值)。更新Deployme
2020-07-10 08:40:23
438
原创 k8s创建资源(2)「基于配置清单」
一,两种创建资源的方法1. 基于命令的方式:简单直观快捷,上手快。适合临时测试或实验。2. 基于配置清单的方式:配置文件描述了 What,即应用最终要达到的状态。配置文件提供了创建资源的模板,能够重复部署。可以像管理代码一样管理部署。适合正式的、跨环境的、规模化部署。这种方式要求熟悉配置文件的语法,有一定难度。环境介绍主机IP地址服务master192.168.1.21k8snode01192.168.1.22k8snode02192
2020-07-10 08:39:34
382
原创 k8s创建资源(1)、「扩容与缩容」和「升级与回滚」
两种创建资源的方法基于命令的方式:简单直观快捷,上手快。适合临时测试或实验。基于配置文件的方式:配置文件描述了 What,即应用最终要达到的状态。配置文件提供了创建资源的模板,能够重复部署。可以像管理代码一样管理部署。适合正式的、跨环境的、规模化部署。这种方式要求熟悉配置文件的语法,有一定难度。一,用命令行的方式创建资源主机IP地址master192.168.1.21node01192.168.1.22node02192.168.1.23
2020-07-10 08:36:27
481
原创 k8s架构,基本概念
主机名IP地址服务master192.168.1.21node01192.168.1.22node02192.168.1.23kubernetes架构在这张系统架构图中,我们把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。每次个节点上当然都要运行Docker。Docker来负责所有具体的映像下载和容器运行。Kubernetes主要由以下几个核心组件组...
2020-07-10 08:32:38
378
原创 部署k8s集群
一. Kubernetes 系统简介首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。 Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自
2020-07-10 08:31:41
233
原创 Docker swarm搭建(2)
什么是docker swarm?Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。用户可以把
2020-07-10 08:29:48
288
原创 Docker swarm搭建(1)
Docker swarmdocker swarm集群:三剑客之一一. 实验环境主机IP地址服务docker01192.168.1.11swarm+overlay+webUIdocker02192.168.1.13dockerdocker03192.168.1.20docker三台主机都关闭防火墙,禁用selinux,修改主机名,时间同步,并添加域名解析。docker版本必须是:v1.12版本开始(可使用docker version查看版本)1
2020-07-10 08:28:43
416
原创 docker swarm版本回滚
Docker swarmdocker swarm集群:三剑客之一一. Docker Swarm 的基本概念和原理Docker Swarm 简介Swarm是Docker公司推出的用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(docker client in Go, docker_py, docker等)均可以直接与Swarm通信。Swarm几乎全部用go语
2020-07-10 08:27:43
1275
2
原创 Docker+Consul+registrator实现服务发现及nginx反向代理
更改时间mv /etc/localtime/etc/localtime. bkcp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime查看端口[root@docker01 consul]# ss -lntConsul:分布式、高可用的,服务发现和配置服务的工具。数据中心Rigistrator:负责收集dockerhost_上,容器服务的信息,并且发送给consulConsul-tpmplate:根据编辑好的模板,生产新的nginx配置文件,并负责
2020-07-10 08:24:00
530
原创 搭建Prometheus监控报警
基于上一篇博客继续进行部署一、Prometheus & AlertManager 介绍Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,例如邮件、微信、钉钉、Slack 等常用沟通工具,而且很容易做到告警信息进行去重,降噪,分组等,是一款很好用的告警通知系统。二、基本概念Prom
2020-07-10 08:22:13
841
原创 基于docker搭建Prometheus+Grafana
一、介绍PrometheusPrometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。Prometheus基本原理是通过HTTP
2020-07-10 08:21:14
925
原创 Docker的监控(简单部署Sysdig和Weave Scope)
一、Docker的监控Docker自带的监控命令简单命令介绍psdocker container ps 是我们早已熟悉的命令了,方便我们查看当前运行的容器。新版的 Docker 提供了一个新命令 docker container ls,其作用和用法与 docker container ps 完全一样。不过 ls 含义可能比 ps 更准确,所以更推荐使用。top如果想知道某个容器中运行了哪些进程,可以执行 docker container top [container] 命令。命令后面还可以跟上
2020-07-10 08:19:49
480
原创 docker三剑客之docker-compose和搭建wordpress的博客
一、简介Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。通过之前的介绍,我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.y
2020-07-10 08:18:13
510
1
原创 nginx+docker+nfs部署
一.体系架构在Keepalived + Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟切换时间,DNS服务可以负责前端VIP的负载均衡。 nginx负责控制后端web服务器的负载均衡,将客户端的请求按照一定的算法转发给后端Real Server处理,而Real Server将响应直接返回给客户端。 nfs服务器做实时备份,给
2020-07-10 08:16:44
434
原创 docker部署LNMP环境
首先要有确认环境中有需要的tar包,可以使用docker pull来下载这些镜像现在我们是使用已经下载好的镜像,所以需要导入一下[root@docker01 ~]# docker load -i nginx.tar && docker load -i wordpress.tar && docker load -i mysql-5.7.tar && docker load -i php.7.2-fpm.tar//导入nginx,wordpr.
2020-07-10 08:14:00
118
原创 企业级私有仓库镜像仓库Harbor
Harbor 简介Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器, 通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。 作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。 Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网
2020-07-10 08:12:17
249
原创 Docker数据持久化和容器与容器的数据共享
一、前言当我们使用Docker创建一个mysql的container, 数据是存储在container内的.如果有一天不小心执行了docker rm $(docker ps -aq)删除所有container. 那么mysql里的数据也会被删掉, 这是不安全的.我们需要将数据持久化, 存储在container外部. 即使删除container也不会删除原有的数据.二、容器的缺陷容器中的数据可以存储在容器层。但是将数据存放在容器层存在以下问题:1.数据不是持久化。意思是如果容器删除了,这些数据也就
2020-07-09 15:08:41
370
原创 Docker跨主机网络——manual
1. Macvlan 简介在 Macvlan 出现之前,我们只能为一块以太网卡添加多个 IP 地址,却不能添加多个 MAC 地址,因为 MAC 地址正是通过其全球唯一性来标识一块以太网卡的,即便你使用了创建 ethx:y 这样的方式,你会发现所有这些“网卡”的 MAC 地址和 ethx 都是一样的,本质上,它们还是一块网卡,这将限制你做很多二层的操作。有了 Macvlan 技术,你可以这么做了。Macvlan 允许你在主机的一个网络接口上配置多个虚拟的网络接口,这些网络 interface 有自己独立的
2020-07-09 15:06:00
318
原创 Docker跨主机网络——overlay
一、Docker 跨主机通信Docker跨主机网络方案包括:docker 原生的 overlay 和 macvlan。第三方方案:常用的包括 flannel、weave 和 calico。docker 通过 libnetwork 以及 CNM 将上述各种方案与docker集成在一起。libnetwork 是 docker 容器网络库,最核心的内容是其定义的 Container Network Model (CNM),这个模型对容器网络进行了抽象,由以下三类组件组成:1.1 SandboxSan
2020-07-09 15:04:13
775
原创 Docker的网络介绍
Docker 网络基础Docker启动时, 会自动在主机上创建一个docker0虚拟网桥, 实际上是Linux的一个bridge,可以理解为一个软件交换机, 它会而挂载到它的网口之间进行转发 当创建一个Docker容器的时候, 同理会创建一对veth pair接口(当数据包发送到一个接口时, 另外一个接口也可以收到相同的数据包), 这对接口一端在容器内, 即eth0;另一端在本地并被挂载到docker0网桥, 名称以veth开头。Docker容器的DNS和主机名实际上容器中/etc目录下有3个文件是
2020-07-09 15:03:32
173
原创 docker私有仓库
私有仓库有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。本节介绍如何使用本地仓库。docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 docker-registry v2.x 版本。安装运行 docker-registry容器运行你可以通过获取官方 registry 镜像来运行。$ docker run -d -p 5000:5000 --restart=always --name registry reg
2020-07-09 15:02:06
154
原创 Dockerfile常用指令
1.FROM:构建镜像基于哪个镜像语法:FROM <image>[:<tag>]例如:FROM centos:7解释:设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。2.MAINTAINER:镜像维护者姓名或邮箱地址语法:MAINTAINER <name>例如:MAINTAINER adam解释:MAINTAINER指令允许你给将要制作的镜像设置作者信息3
2020-07-09 15:00:40
481
原创 理解Docker镜像分层
目录关于base镜像关于存储结构(About storage drivers)先来创建一个自己的镜像docker镜像的分层结构容器的大小修改时复制策略 copy-on-write (CoW)Copying makes containers efficient关于base镜像base 镜像有两层含义:不依赖其他镜像,从 scratch 构建。其他镜像可以之为基础进行扩展。所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debi
2020-07-09 14:58:40
416
原创 Dockers镜像分层
1,Dockers的最小镜像[root@localhost ~]# docker pull hello-world//下载一个最小的镜像[root@localhost ~]# docker images//查看镜像[root@localhost ~]# docker run hello-world//运行一下hello-world (里面是一个文本对docker运行的简单介绍)dockerfile的组成1)FROM:scratch(抓、挠)2)COPY:hello /3)CMD
2020-07-09 14:55:50
280
1
原创 DOCKER源码分析(一):DOCKER架构
1 背景1.1 Docker简介Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。目前,Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率,并且提升诸如IO等方面的性能。由于众多新颖的特性以
2020-07-09 14:54:34
251
原创 Docker的基本操作命令
Docker介绍Docker 是一个能够把开发应用程序自动部署到容器的开源引擎。它由Docker公司的团队编写,基于Apache 2.0开源协议授权。它提供了一个简单、轻量的建模方式,使开发生命周期更高效快速,鼓励了面向服务的架构设计。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻
2020-07-09 14:51:20
203
原创 docker底层原理介绍
1.docker介绍1.1什么是dockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。1.2docker能解决什么问题1.2.1高效有序利用资源机器资源有限;单台机器得部署多个应用;应用之间互相隔离;应用之间不能发生资源抢占,每个应用只能使用事先注册申请的资源。1.2.2一次编译,到处运行类似于java代码,应用及依
2020-07-09 14:45:33
392
原创 花式安装Docker
//使用docker的基本要求[root@localhost ~]# uname -r3.10.0-693.el7.x86_64内核版本必须是3.10以上的。一, 安装dockers在安装docker之前,再说一点,docker现在有两个版本,一个叫做docker-EE企业版,收费的一个叫docker-CE社区版,免费版,其实两个版本并没有太大的偏差,不一样的是docker公司会提供后续的官方的技术支持等服务,对于我们来说,肯定用社区办的多,我们拿来学习社区办更是可以的。Docker的官网h
2020-07-09 14:44:19
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人