容器

[转帖]从零开始入门 K8s | Kubernetes 网络模型进阶

夙愿已清 提交于 2020-03-16 08:27:31
从零开始入门 K8s | Kubernetes 网络模型进阶 https://www.kubernetes.org.cn/6838.html 2020-03-03 13:57 alicloudnative 分类: Kubernetes教程/入门教程 阅读(1130) 评论(0) 作者 | 叶磊(稻农)阿里巴巴高级技术专家 导读:本文将基于之前介绍的 基本网络模型 ,进行更深入的一些了解,希望给予读者一个更广更深的认知。首先简单回顾一下容器网络的历史沿革,剖析一下 Kubernetes 网络模型的由来;其次会剖析一个实际的实现(Flannel Hostgw),展现了数据包从容器到宿主机的变换过程;最后对于和网络息息相关的 Servcie 做了比较深入的机制和使用介绍,通过一个简单的例子说明了 Service 的工作原理。 Kubernetes 网络模型来龙去脉 容器网络发端于 Docker 的网络。Docker 使用了一个比较简单的网络模型,即内部的网桥加内部的保留 IP。这种设计的好处在于容器的网络和外部世界是解耦的,无需占用宿主机的 IP 或者宿主机的资源,完全是虚拟的。它的设计初衷是:当需要访问外部世界时,会采用 SNAT 这种方法来借用 Node 的 IP 去访问外面的服务。比如容器需要对外提供服务的时候,所用的是 DNAT 技术,也就是在 Node 上开一个端口,然后通过

JavaScript 响应式开发

时光总嘲笑我的痴心妄想 提交于 2020-03-15 09:48:30
响应式开发原理 利用媒体查询对不同宽度的设备进行布局和样式的设置,从而适配不同的设备 设备划分 尺寸区间 超小屏幕(手机) <768px 小屏设备(平板) >=768px~992px 中等屏幕(桌面显示器) >=992px~<1200px 宽屏设备(大桌面显示器) >=1200px 响应式布局容器 响应式需要一个父级作为布局容器,来配合子集元素实现变化效果 原理就是在不 同容器下,通过媒体查询来改变这个布局容器的大小,再改变里面子元素的排列方式和大小,从而实现不同屏幕下,看到不同的页面布局和样式方法。 平时的响应式尺寸划分 超小屏幕:宽度设置为100% 小屏设备:宽度设置750px 中等屏幕:970px; 宽屏设备:1170px <style> .container{ width:750px; margin:0 auto; } .container ul li{ float:left; list-style: none; height:40px; background-color: chartreuse; width:93.75px; } @media screen and (max-width: 768px) { .container{ width:100%; } .container ul li{ width:33.33%; } } </style> </head> <body

AWS学习笔记(九)--ECS

随声附和 提交于 2020-03-14 23:59:38
Amazon Elastic Container Service (Amazon ECS) 是一项高度可扩展的快速容器管理服务,可轻松运行、停止和管理集群上的 Docker 容器。 利用 Amazon ECS,可以通过简单的 API 调用来启动和停止基于容器的应用程序,可以从集中式服务获取集群状态,并可以访问许多熟悉的 Amazon EC2 功能 可以根据资源需求、隔离策略和可用性要求来安排容器在集群中的位置。借助ECS,无需操作自己的集群管理和配置管理系统,也无需担心扩展管理基础设施。 ECS 可用于创建一致的部署和构建体验,在微服务模型上构建先进的应用程序架构 ECS集成了Elastic Container Registry、Elastic Load Balancing、Elastic Block Store、Elastic Network Interfaces、Virtual Private Cloud、IAM 和 CloudTrail,可为您提供运行各种容器化应用程序或服务的完整解决方案 Amazon Elastic Container Registry (Amazon ECR) 是一项AWS Docker 容器注册表服务,可让开发人员轻松存储、管理和部署 Docker 容器映像。 启动类型 ECS支持两种启动类型:Fargate和EC2。 Fargate 启动类型

AI独角兽商汤科技的内部服务容器化历程

允我心安 提交于 2020-03-14 18:53:42
本文由阿尔曼,商汤科技运维工程师于4月26日晚在Rancher微信群所做的技术分享整理而成。商汤科技是专注于计算机视觉领域的AI公司。本次分享结合了容器平台团队帮助公司业务/内部服务容器化历程,介绍商汤科技在容器化历程中使用的工具、拥有的最佳实践及值得分享的经验教训。 搜索微信号RancherLabsChina,或文末扫码,添加Rancher小助手为好友,可加入官方技术交流群,实时参加下一次分享~ 内容目录 ● 背景 ● 需求分析与技术选型 ● 容器镜像 ● 监控报警 ● 可靠性保障 ● 总结 背 景 商汤科技是一家计算机视觉领域的AI创业公司,公司内会有一些业务需要云端API支持,一些客户也会通过公网调用这些所谓SaaS服务。总体来讲,云API的架构比较简单,另外由于公司成立不久,历史包袱要轻许多,很多业务在设计之初就有类似微服务的架构,比较适合通过容器化来适配其部署较繁复的问题。 公司各个业务线相对独立,在组织上,体现在人员,绩效及汇报关系的差异;在技术上体现在编程语言,框架及技术架构的独自演进,而服务的部署上线和后续维护的工作,则划归于运维部门。这种独立性、差异性所加大的运维复杂度需要得到收敛。 我们遇到的问题不是新问题,业界也是有不少应对的工具和方法论,但在早期,我们对运维工具的复杂性增长还是保持了一定的克制:ssh + bash script扛过了早期的一段时光

docker创建tomcat容器

≡放荡痞女 提交于 2020-03-14 15:23:23
配置阿里云镜像地址:先在阿里云搜索:容器镜像服务 --> 最下面找到 容器加速服务 docker配置 etc目录下 创建docker文件夹 mkdir --->docker -----vi daemo.json daemon.json文件 配置:vi /etc/sysctl.conf 添加: net.ipv4.ip_forward=1 重启服务: systemctl restart network 查看是否修改成功 { "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"] } 下载tomcat版本 docker pull tomcat:8.5.46-jdk8-openjdk 启动一个tomcat容器 :docker run -p 8000:8080 -d tomcat:8.5.46-jdk8-openjdk 查看端口: netstat -tulpn 启动成功 tomcat默认的账号密码:需要进入tomcat容器: docker exec -it 8979889y6978 /bin/bash 查看conf文件件下的 修改docker容器配置文件 没有vi命令时 需要先安装命令:apt-get update命令 来源: https://www.cnblogs.com/badboys/p/12491948.html

07-docker端口映射与容器关联

时光怂恿深爱的人放手 提交于 2020-03-14 02:30:08
端口映射与容器关联 docker除了通过网络访问外,还提供了两个功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问。 端口映射容器访问 1、从外部访问容器应用,从启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。可以通过-P或-p参数来指定端口映射。 -P:会随机映射一个49000~49900的端口到内部容器开放的网络端口 [root@docker01 ~]# docker run -d -P training/webapp python app.py 75b2c32292d290aa3004b5b6cbb49775cc6f360796736473978cc32a682fdad9 [root@docker01 ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 75b2c32292d2 training/webapp "python app.py" 3 seconds ago Up 2 seconds 0.0.0.0:32770->5000/tcp musing_carson 查看应用的信息 [root@docker01 ~]# docker logs -f musing

07-docker端口映射与容器关联

落爺英雄遲暮 提交于 2020-03-14 02:11:21
端口映射与容器关联 docker除了通过网络访问外,还提供了两个功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问。 端口映射容器访问 1、从外部访问容器应用,从启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。可以通过-P或-p参数来指定端口映射。 -P:会随机映射一个49000~49900的端口到内部容器开放的网络端口 [root@docker01 ~]# docker run -d -P training/webapp python app.py 75b2c32292d290aa3004b5b6cbb49775cc6f360796736473978cc32a682fdad9 [root@docker01 ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 75b2c32292d2 training/webapp "python app.py" 3 seconds ago Up 2 seconds 0.0.0.0:32770->5000/tcp musing_carson 查看应用的信息 [root@docker01 ~]# docker logs -f musing

洞察漏洞管理平台实践

回眸只為那壹抹淺笑 提交于 2020-03-13 23:04:42
洞察是宜信安全部用来对公司内部系统所出现的安全漏洞进行线上全生命周期管理的漏洞管理平台,于2018年4月下旬对外开源。感谢宜信安全应急响应中心的开源,给企业和安全从业者带来一个很好的漏洞管理系统。 GitHub项目地址: https://github.com/creditease-sec/insight 参考文章:https://blog.csdn.net/zhouxiang601/article/details/80158437 实践环境: 系统版本:CentOS 7.6 安装软件版本:MySQL 5.6 、 Docker 1.13.1 、Nginx 1.16.1 问题处理 具体的安装步骤GitHub和参考文章里已有详细介绍,不作赘述,本文主要总结部署过程中可能遇到的坑,仅供大家参考 系统部署完成后,用wget命令测试能否正常访问,却一直提示拒绝连接,telnet端口不通 关闭防火墙、selinux,排除影响 netstat -antlp,端口监听正常 进入scrpm容器内发现无正在监听中的连接,判断容器服务启动失败,导致端口无法访问 回顾部署过程,安装docker、 启动MySQL 5.6、 创建数据库和账号权限按步就班,没有发现问题 推测问题出在部署和启动srcpm容器过程中,查看日志,发现配置的邮箱服务器账号语法有问题,少了单引号,修改之后,重启容器,访问恢复正常 重点步骤

k8s基础入门知识

会有一股神秘感。 提交于 2020-03-13 18:44:16
自动化运维 平台化(ansible、git、gitlab、docker、jenkins、elk) 自动化(工具/脚本) 容器化(docker/k8s) 虚拟化 docker和虚拟机的区别 更高效的资源利用。虚拟机是一个完备的系统,容器只是一个进程。 虚拟机启动慢,容器是秒级 一致的运行环境 CI/CD 容器核心概念 镜像Image (1)镜像是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 (2)镜像采用的是AUFS,实现分层结构。镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。镜像是只读的。创建新镜像时,底层内容不变,只是给镜像增加了一个新层次。 容器Container (1)容器可以认为是镜像的一次执行,是可读写的镜像。容器只是操作系统上的一个进程,进程执行完毕将会退出。不要假定容器会一直存在,应该假设它随时会崩溃。容器一旦出现故障,不要犹豫,直接将它删除,再启动一个。 (2)按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录

Java中的注解

◇◆丶佛笑我妖孽 提交于 2020-03-13 11:50:38
注解的基础知识 元注解:@Retention @Target @Document @Inherited Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口。 参数成员只能用public或默认(default)这两个访问权修饰 参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一些类型的数组。 要获取类、方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation对象,除此之外没有别的获取注解对象的方法 注解也可以没有定义成员, 不过这样注解就没啥用了,只起到标识作用 JDK的元注解 JDK提供了4种元注解,分别是 @Retention 、 @Target 、 @Document 和 @Inherited 四种。这4个注解是用来修饰我们自定义的其他注解的,因此称为元注解。 1. @Retention 定义注解的保留策略。首先要明确生命周期长度 SOURCE < CLASS < RUNTIME ,所以前者能作用的地方后者一定也能作用。一般如果需要在运行时去动态获取注解信息, 那只能用 RUNTIME