容器

初识k8s

拈花ヽ惹草 提交于 2020-01-25 09:40:24
Kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。 新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。 容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。 Kubernetes概述 Kubernetes是Google开源的一个容器编排引擎

CTF必备技能丨Linux Pwn入门教程——环境配置

只谈情不闲聊 提交于 2020-01-25 08:38:37
说在前面 这是一套Linux Pwn入门教程系列,作者依据Atum师傅在i春秋上的Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章整理出一份相对完整的Linux Pwn教程。 问:为什么要花费精力去整理这套系统的Linux Pwn教程? 答:网上关于Pwn的资料比较零散;经常会碰到解题过程略的Writeup和没有注释;存在大量硬编码偏移的脚本;练习题目难找;调试环境难搭建;GDB没有IDA好操作等等问题。 问:这个Linux Pwn教程适合新手学习吗? 答:本套课程非常适合萌新们进行入门学习,内容通俗易懂,化繁为简,同时结合历年赛题,实操性强,对于快速提升技能可起到很大的帮助。 问:关于Linux Pwn教程是否有视频讲解? 答:在i春秋官网的课程库中有很多关于Pwn的视频课程,立即去学习!https://www.ichunqiu.com/courses/pwn?from=weixin 本系列教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有注释的python脚本。 教程中的题目和脚本若有使用不妥之处,欢迎各位大佬批评指正。 今天是Linux Pwn入门教程第一章:环境配置,阅读用时约7分钟。 一

Flex的使用

我只是一个虾纸丫 提交于 2020-01-25 07:51:33
网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于 盒状模型 ,依赖 display 属性 + position 属性 + float 属性。它对于那些特殊布局非常不方便,比如, 垂直居中 就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex 布局将成为未来布局的首选方案。本文介绍它的语法, 下一篇文章 给出常见布局的 Flex 写法。网友 JailBreak 为本文的所有示例制作了 Demo ,也可以参考。 以下内容主要参考了下面两篇文章: A Complete Guide to Flexbox 和 A Visual Guide to CSS3 Flexbox Properties 。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为 Flex 布局。 .box{ display: flex; } 行内元素也可以使用 Flex 布局。 .box{ display: inline-flex; } Webkit 内核的浏览器,必须加上 -webkit 前缀。 .box{ display: -webkit

Docker简介

∥☆過路亽.° 提交于 2020-01-25 07:43:15
什么是容器? 一种虚拟化的方案 操作系统级别的虚拟化 只能运行相同或相似内核的操作系统 依赖于Linux内核特性:Namespace和Cgroups(Control group) 什么是Docker? 将应用程序自动部署到容器,是一个开源的应用容器引擎(Go语言开源引擎) Docker目标 提供简单轻量的建模方式 职责的逻辑分离 快速高效的开发生命周期 鼓励面相服务的架构,Docker推荐单个容器只运行一个程序或进程 Docker使用场景 1、使用docker容器开发、测试、部署服务 2、创建隔离的运行环境 3、搭建测试环境 4、构建多用户的平台即服务(PaaS)基础设施 5、提供软件即服务(SaaS)的应用程序 6、高性能、超大规模的宿主机部署 Docker 是一个开源的 应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 一个完整的Docker有以下几个部分组成: dockerClient客户端 Docker Daemon守护进程 Docker Image镜像 DockerContainer容器 Docker 架构 Docker 使用 客户端-服务器 (C/S) 架构模式 ,使用远程API来管理和创建Docker容器。 Docker 容器通过

Kubernetes - 4.1Workload - Pod

一曲冷凌霜 提交于 2020-01-25 06:16:46
什么是Pod? Kubernetes中最小的管理单元,作为应用运行的载体。当Pod运行多个容器时,同一个Pod中的所有容器可以共享PID、Network、IPC、UTS命名空间。 打个比方,例如Pod是豆荚,Container容器就是豆子,一个豆荚里可以有一个或者多个豆子。 Pod的使用方式 通过kubectl创建 kubectl run nginx-pod --image=nginx:1.16 通过yaml资源定义清单创建 kubectl apply -f nginx-pod.yaml apiVersion: v1 #表示api资源是哪一个组及版本 kind: Pod #表示资源类别 metadata: #表示元数据 name: nginx #名称,作用域在名称空间内唯一 spec: #表示期望状态 containers: #表示容器资源 - name: nginx #名称,作用域在Pod内唯一 image: nginx:1.16 #指定镜像 通过kubectl命令查看Pod kubectl get pods Pod的资源管理 Pod开始创建时会进行请求所需资源,Kubernetes会根据Pod所需要的资源量安排在最合适的Node节点上,这保证了Pod所需要的资源是可以成功获得的。Pod的资源管理可以设置内存,CPU,临时存储所需的资源及最大资源使用限制。 kubectl

docker学习内容之一

↘锁芯ラ 提交于 2020-01-25 04:00:41
docker简介 为什么会有docker出现 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。 Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。 环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,**软件可以带环境安装?**也就是说, 安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题 。 之前在服务器配置一个应用的运行环境,要安装各种软件,就拿我做过的的电商项目的环境来说吧,Java/Tomcat/MySQL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。 传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得以部署应用程式, 开发需要清楚的告诉运维部署团队,用的全部配置文件

Spring RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition

拥有回忆 提交于 2020-01-25 03:54:59
RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition均继承了AbstractBeanDefiniton,其中BeanDefinition是配置文件<bean>元素标签在容器中内部表示形式。<bean>元素标签拥有class、scope、lazy-init等配置属性,BeanDefinition则提供了相应的beanClass、scope、lazyInit属性,BeanDefinition和<bean>中的属性是一一对应的。其中RootBeanDefinition是最常用的实现类,它对应一般性的<bean>元素标签,GenericBeanDefinition是自2.5以后新加入的bean文件配置属性定义类,是一站式服务类。在配置文件中可以定义父<bean>和子<bean>,父<bean>用RootBeanDefinition表示,而子<bean>用ChildBeanDefiniton表示,而没有父<bean>的<bean>就使用RootBeanDefinition表示。AbstractBeanDefinition对两者共同的类信息进行抽象。 Spring通过BeanDefinition将配置文件中的<bean>配置信息转换为容器的内部表示

容器编排、镜像服务和代码托管的选择

夙愿已清 提交于 2020-01-25 01:30:52
团队使用Docker后,镜像直接push到云端,不仅启动容器时下载快速,而且和代码源配套使用,前面分享过《借用阿里云容器镜像服务,实现Docker自动构建》 在选择云服务时,比较了几大云服务商,信息整理出来分享,排名不分先后。信息更新日期2020年1月16日。 来源: CSDN 作者: dingxl18 链接: https://blog.csdn.net/xiziyidi/article/details/104009244

Web.xml配置详解之context-param

风流意气都作罢 提交于 2020-01-24 23:26:59
< context-param > < param-name > </ param-name > < param-value > > </ param-value > </ context-param > 作用:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数。 param-name 设定上下文的参数名称。必须是唯一名称 param-value 设定的参数名称的值 初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>。 接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文。 接着容器会将读取到<context-param>转化为键值对,并交给ServletContext。 容器创建<listener></listener>中的类实例,即创建监听(备注:listener定义的类可以是自定义的类但必须需要继承ServletContextListener)。 在监听的类中会有一个contextInitialized(ServletContextEvent event)初始化方法,在这个方法中可以通过event.getServletContext().getInitParameter("contextConfigLocation")

C语言实现容器

你。 提交于 2020-01-24 23:01:07
实现思路 最近在看Redis源代码,发现了许多自己不知道的C语言的书写方式,这些写法可以实现许多结构。 CXX 使用泛型提供了容器,但是C语言中不允许将数据类型作为参数进行传递,所以我们必须使用另一种方式来实现我们的目的结构。 typedef struct listNode { struct listNode * prev ; struct listNode * next ; void * value ; } listNode ; typedef struct listIter { listNode * next ; int direction ; } listIter ; typedef struct list { listNode * head ; listNode * tail ; void * ( * dup ) ( void * ptr ) ; void ( * free ) ( void * ptr ) ; int ( * match ) ( void * ptr , void * key ) ; unsigned long len ; } list ; list * listCreate ( void ) ; // 创建 void listRelease ( list * list ) ; // 删除 list * listAddNode ( list * list