容器技术

k8s入门系列之介绍篇

旧街凉风 提交于 2019-12-30 10:29:48
Kubernetes介绍 1.背景介绍   云计算飞速发展     - IaaS     - PaaS     - SaaS   Docker技术突飞猛进     - 一次构建,到处运行     - 容器的快速轻量     - 完整的生态环境 2.什么是kubernetes   Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。   Kubernetes优势:     - 容器编排     - 轻量级     - 开源     - 弹性伸缩     - 负载均衡 •Kubernetes的核心概念 1.Pod   运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通。Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。 2.Replication Controller   Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。集群中副本的数量大于指定数量

Spring - Spring容器概念及其初始化过程

我只是一个虾纸丫 提交于 2019-12-30 03:00:32
引言 工作4年多,做了3年的java,每个项目都用Spring,但对Spring一直都是知其然而不知其所以然。鄙人深知Spring是一个高深的框架,正好近期脱离加班的苦逼状态,遂决定从Spring的官方文档入手,结合Spring代码和实际项目,全面的学习Spring,并将学习内容记录在博客上,以便以后查阅并可以和众猿讨论分享。PS:文章中会有部分是官方原句翻译,例子也会有官方例子。 概述 Spring容器是什么? Spring容器是Spring的核心,一切Spring bean都存储在Spring容器内,并由其通过IoC技术管理。Spring容器也就是一个bean工厂(BeanFactory)。应用中bean的实例化,获取,销毁等都是由这个bean工厂管理的。 Spring容器究竟是什么。。。 org.springframework.context.ApplicationContext接口用于完成容器的配置,初始化,管理bean。一个Spring容器就是某个实现了ApplicationContext接口的类的实例。也就是说,从代码层面,Spring容器其实就是一个ApplicationContext。 在普通的JAVA工程中

控制反转(Ioc)和依赖注入(DI)

为君一笑 提交于 2019-12-29 14:45:21
控制反转IOC, 全称 “Inversion of Control”。依赖注入DI, 全称 “Dependency Injection”。 一个简单的场景:  当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常有调用者来创建被调用者的实例, 并使用。 面向的问题: 软件开发中,为了降低模块间、类间的耦合度,提倡基于接口的开发,那么在实现中必须面临最终是有“谁”提供实体类的问题。(将各层的对象以松耦合的方式组织起来,各层对象的调用面向接口。) 理解将组件的配置和使用分离: 如果觉得这句话比较抽象, 可以将" 组件 "理解为" 对象 "(底层组件),那么相应的“ 组件的配置 ”就可以理解成为“对象的初始化”, 再来理解这句话,就是将对象的创建和使用分离. 其优点很冥想, 将对象的创建延迟到部署阶段(这句话也可能不太好理解), 就是说对象的创建全部依赖于统一的配置(声明), 这样我们就可以通过修改配置动态地把我们期望使用的类替换成我们打算使用的类,而不修改任何使用对象的原有代码. 原则上,我们需要把对象的装配(配置/声明)和业务代码(使用)分离开来.  软件系统中的依赖(耦合): 在采用面向对象设计的软件系统中,万物皆对象,所有的对象通过彼此的合作,完成整个系统的工作.就好比下面的齿轮,每个齿轮转动才能保证整个齿轮系统的运转.但是这样的设计就意味着强依赖,强耦合.

云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告

独自空忆成欢 提交于 2019-12-29 14:44:06
业界要闻 近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告 。 其中, 阿里云容器服务的市场表现全球前三、中国第一,同时创造中国企业最好成绩,进入强劲表现者象限 。报告显示,阿里云容器服务市场表现为中国第一,与谷歌云并列全球第三。 Forrester 分析师认为:“阿里云容器服务提供了广泛的开发和应用服务支持能力,并且具备丰富的市场生态和合作伙伴体系,是企业在中国寻求完备容器云服务能力的最佳选择。 Virtual Kubelet 开源项目 发布第一个可商用 1.0 版本 ,本次发布的主要特点包括: API 将趋于稳定; 发布版不再提供二进制文件,用户可以自定义发行版; 提供测试用的 CLI; 非通用版的 Charts 也将从库中移除。 上游重要进展 Kubernetes 项目 Kubernetes 设计增强提议(KEP): Even Pods Spreading :这个设计提议通过 MaxSkew 算法来尽量均匀的调度 Pod 到目的节点,相关的PR(#77760、# 77828、# 79062、#79063); 增强 DaemonSet 灰度能力 : 新增 SurgingRollingUpdate,并在 RollingUpdate 和 SurgingRollingUpdate 中增加灰度升级的能力。 Scheduler Framework

容器生态系统

无人久伴 提交于 2019-12-29 14:43:53
本文首发于我的公众号 Linux云计算网络(id: cloud_dev) ,专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大家关注,二维码文末可以扫。 说起生态,不禁让人想起贾跃亭的乐视,想当初我多次被它的生态布局给震撼到,一度相信它将要超越百度,坐拥互联网三大江山的宝座,但没过时日,各种劲爆的新闻就把它推到了风口浪尖上,现在想想也是让人唏嘘,但不管怎么说,愿它好吧,毕竟这种敢想敢做的精神还是值得敬佩的。 回到技术这个领域,不得不说,技术更新迭代的速度快得让人应接不暇,就容器技术这个领域来说,从 Docker 面世短短的 2-3 年时间里,就衍生出多种与之相关的技术框架,由此形成了一个小小的生态系统。 一谈到容器,大家都会想到 Docker,本文也主要从 Docker 角度来讲容器生态系统。 容器基础技术 Docker 的本质是利用 Linux 内核的 namespace 和 cgroups 机制,构建出一个隔离的进程(容器进程)。所以,容器的基础技术主要涉及到 Linux 内核的 namespace 和 cgroups 技术。 容器核心技术 容器核心技术保证容器能够在主机上运行起来,包括容器规范、容器 runtime、容器管理工具、容器定义工具、Registry 和容器 OS。 容器规范旨在将多种容器(如 OpenVZ,rkt,Docker

Docker 前沿概述

柔情痞子 提交于 2019-12-29 09:57:33
目录 Docker 前沿概述 什么是Docker? Docker的基本概念 容器(Container) -- 镜像运行时的实体 镜像(Image) -- 一个特殊的文件系统 仓库(Repository) -- 集中存放镜像文件的地方 下面再来说说虚拟机 容器和虚拟机的比较 Docker 解决了什么样的问题 准备你的docker环境 测试Docker 版本 测试Docker 安装 回顾和备忘单 Docker 前沿概述 什么是Docker? Docker是基于Go语言实现的开源容器项目。Docker是一个为开发者和系统管理员提供的开发,部署和运行的容器应用程序。Linux使用容器开发应用程序的这种方式称为容器化。Docker项目已加入Linux基金会,并遵循Apache2.0 协议,全部开源代码再http://github.com/docker 项目仓库进行维护。 Docker的基本概念 Docker中包括三个基本概念:容器(Container)、镜像(Image)、仓库(Repository) 容器(Container) -- 镜像运行时的实体 先来看看容器较为官方的解释:容器就是将软件打包成基本单元, 用来开发、交付和部署。 容器镜像是轻量的、可执行的软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软件是基于Linux和Windows的应用

使用 Docker 搭建 Java Web 运行环境

ぃ、小莉子 提交于 2019-12-29 09:56:59
目录[-] 原料 前提条件 安装 Docker 做法 下载镜像 启动容器 安装相关软件 安装 JDK 安装 Tomcat 设置环境变量 编写运行脚本 退出容器 创建 Java Web 镜像 启动 Java Web 容器 品尝 总结 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器、镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结。 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们在宿主机的操作系统上,可安装了多个虚拟机,而在每个虚拟机中,通过虚拟化技术,实现了一个虚拟操作系统,随后,就可以在该虚拟操作系统上,安装自己所需的应用程序了。这一切看似非常简单,但其中的技术细节是相当高深莫测的,大神级人物都不一定说得清楚。 凡是使用过虚拟机的同学,应该都知道,启动虚拟机就像启动一台计算机,初始化过程是相当慢的,我们需要等很久,才能看到登录界面。一旦虚拟机启动以后

Spring框架学习二:通过简单的HelloWorld程序理解IoC

懵懂的女人 提交于 2019-12-29 02:14:57
实现第一个 Spring HelloWorld 程序   接着上一次笔记,上次我们讲了使用 Spring 框架需要做的一些准备工作。现在,我们就来实现我们的第一个 Spring HelloWorld 程序,先不管为什么,我们先看效果。通过程序的效果,我们再进一步探知 Spring IoC 容器的工作原理。   首先我们需要新建一个 Spring 配置文件:在src下右键 new —> other —> 找到 Spring文件夹,点击 Spring Bean Configurations File,起名字叫 ApplicationContext.xml,编写如下内容 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 5 <!-- class属性值需要写完整的类全名 --

后端技术杂谈10:Docker 核心技术与实现原理

ぃ、小莉子 提交于 2019-12-29 00:23:53
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 本系列文章将整理于我的个人博客: www.how2playlife.com 该系列博文会介绍常见的后端技术,这对后端工程师来说是一种综合能力,我们会逐步了解搜索技术,云计算相关技术、大数据研发等常见的技术喜提,以便让你更完整地了解后端技术栈的全貌,为后续参与分布式应用的开发和学习做好准备。 如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系我,欢迎你参与本系列博文的创作和修订。 <!-- more --> 要搞懂docker的核心原理和技术,首先一定要对Linux内核有一定了解。 提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。 同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR ,让我们再次理解 Docker 的的整体架构变得更加困难。 虽然 Docker 目前的组件较多,并且实现也非常复杂,但是本文不想过多的介绍

后端技术杂谈11:十分钟理解Kubernetes核心概念

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-29 00:21:11
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 本文转自 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 本系列文章将整理于我的个人博客: www.how2playlife.com 该系列博文会介绍常见的后端技术,这对后端工程师来说是一种综合能力,我们会逐步了解搜索技术,云计算相关技术、大数据研发等常见的技术喜提,以便让你更完整地了解后端技术栈的全貌,为后续参与分布式应用的开发和学习做好准备。 如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系我,欢迎你参与本系列博文的创作和修订。 <!-- more --> 十分钟带你理解Kubernetes核心概念 本文将会简单介绍 Kubernetes 的核心概念。因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍。相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概念。我们发现一些概念(比如Service)如果没有图表的辅助就很难全面地理解。在合适的地方我们也会提供Kubernetes文档的链接以便读者深入学习。 容器特性、镜像、网络;Kubernetes架构、核心组件、基本功能;Kubernetes设计理念、架构设计、基本功能、常用对象、设计原则