容器

kubernetes 中的资源

ⅰ亾dé卋堺 提交于 2020-03-09 15:12:34
kubernetes 中的资源 标签(空格分隔): kubernetes系列 一:kubernetes 中的资源清单 二:kubernetes yaml 格式清单 一. kubernetes 中的资源清单 1.1 k8s 中资源 K8s 中所有的内容都抽象为资源, 资源实例化之后,叫做对象 资源:(适用范围来分配的) 名称空间级别: kubeadmin k8s kube-system kubectl get pod -n default 集群级别 : role 元数据级别:HPA 名称空间级别: 工作负载型资源( workload ): Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、 CronJob ( ReplicationController 在 v1.11 版本被废弃 ) 服务发现及负载均衡型资源( ServiceDiscovery LoadBalance ): Service、Ingress、... 配置与存储型资源: Volume( 存储卷 )、CSI(容器存储接口,可以扩展各种各样的第三方存储卷 ) 特殊类型的存储卷:ConfigMap( 当配置中心来使用的资源类型 )、Secret(保存敏感数据)、 DownwardAPI(把外部环境中的信息输出给容器) 集群级资源: Namespace、Node、Role

docker

烂漫一生 提交于 2020-03-09 08:51:35
Docker 入门到精通 """ 1)docker就是Linux上及其轻量的虚拟机 2)虚拟机是存在宿主系统中,通过镜像给宿主系统拓展子系统的(一个镜像理论上可以做n个子系统) 3)两个特别重要的概念 image:镜像 container:容器(子系统) 4)工作方式: i)在服务器系统下载docker(为服务器安装虚拟机,服务器系统就是宿主系统) ii)用docker去下载对应需求的镜像:镜像操作 iii)通过镜像制造容器(装子系统):容器操作 5)优势 i)超级轻量级,docker安装的容器体积可以按kB度量 ii)集群部署,docker可以通过一个镜像制造出多个一模一样的容器 iii)便捷管理所有镜像与容器(命令行操作) 6)镜像和容器特点 一般一个镜像中只包含一种软件:比如mysql镜像,创建的容器中只有mysql环境;redis镜像,创建的容器中只有redis环境 注:一个镜像中有多个环境的需要自己制作镜像 """ CentOS安装Docker 设置管理Docker的仓库 """ 1)安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2)安装稳定仓库 sudo yum-config-manager --add-repo https://download.docker.com

树莓成长记4:docker基本操作

狂风中的少年 提交于 2020-03-09 06:27:13
docker容器启动 方法1:使用docker run命令即可启动容器 创建后直接与容器内程序交互 docker run -it redis docker run --interactive --tty redis #参数解释 -it : i->interactive 保持标准输入打开以接收指令 t->tty 分配一个伪终端给容器 创建容器让其后台运行 docker run -d --name=redis_test redis docker run --detach redis -d -> detach 后台运行 --name->给容器命名,方便查找 使用ps命令查看容器信息 docker ps -l 方法2:先使用create容器,然后使用start启动容器 使用create创建容器 docker create redis docker container create redis 创建之后使用ps 命名查看容器状态,此时容器状态为created,运行所需的素有文件都已经创建好,但是并没有开始真正运行 使用start启动容器 docker start d292132d383a 再次查询容器状态 状态已经从created变更为up docker容器停止 暂停容器 使用pause命令让容器暂时不对外提供如无 docker pause 4d647987ed14 查看容器状态 可以看到

六.docker网络模式

拈花ヽ惹草 提交于 2020-03-09 03:13:10
一.网络模式 --net=bridge 默认 2.--net=host docker run -it busybox 默认运行 生成独立网络命令空间 docker run -it --net=host busybox --net=host 与宿主机一同使用网络命令空间,其他隔离 在容器内使用端口相当于占用宿主机的端口; 3.--net=none Docker run -it --net=none 网络独立,但每配置任何地址 4.--net=container:name docker exec -it bs sh 运行一般容器 netstat -nltp docker run -itd --name nginx05 --net=container:bs nginx netstat -nltp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - 具备同样的网络信息,容器除外,其他都是隔离; 5.自定义网络 与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信 docker network create bs-test 创建网络bs-test docker run -it

容器内init进程方案

白昼怎懂夜的黑 提交于 2020-03-08 23:54:18
进程标识符 (PID) 是Linux 内核为每个进程提供的唯一标识符。熟悉docker的同学都知道, 所有的进程 PID都属于某一个PID namespaces, 也就是说容器具有一组自己的 PID,这些 PID 映射到主机系统上的 PID。启动Linux内核时启动的第一个进程具有 PID 1,一般来说该进程就是 init 进程,例如 systemd 或 SysV。同样,在容器中启动的第一个进程也会获得该PID namespaces内的 PID 1。Docker 和 Kubernetes 使用信号与容器内的进程通信,来终止容器的运行, 只能向容器内 PID 1 的进程发送信号。 在容器的环境中,PID 和 Linux 信号会产生两个需要考虑的问题。 问题 1:Linux 内核如何处理信号 对于具有 PID 1 的进程,Linux 内核处理信号的方式与其他进程有所不同。系统不会自动为此进程注册信号处理函数,SIGTERM 或 SIGINT 等信号默认被忽略,必须使用 SIGKILL 来终止进程。使用 SIGKILL 可能会导致应用程序无法平滑退出,例如正在写入的数据出现不一致或正在处理的请求异常结束。 问题 2:经典 init 系统如何处理孤立进程 宿主机上的init进程(如 systemd)也用来回收孤儿进程。孤儿进程(其父级已结束的进程)会重新附加到 PID 1 的进程,PID

Tomcat是如何运行的?整体架构又是怎样的?

北战南征 提交于 2020-03-08 23:53:55
在许多的高端开发的岗位中都会或多或少有要求面试人员要研究过一些常用中间件源码。这是因为一切的秘密都是藏在源码中,阅读源码能够让我们对框架或者中间件的理解更加深刻,而我们也能够在源码的研究中获得其中一些优秀的设计方式。而我们的中间件和源码那么多,我们该从何入手呢?其实大部分的中间件或者框架都有一些共性的部分,例如网络编程、多线程、反射和类加载等技术。所以深入研究透了一两个中间件的话,那么再回过头来看其它的中间件,那么就会很容易理解它里面所用的技术以及原理。而作为一个老牌的WEB端框架Tomcat,无论是其整体的架构设计,还是其内在的一些技术灵活应用,都值得我们一看。 在学习框架的时候,我一般都是对这个框架有一个整体的认识。知道它整体是如何运行的,然后再深入其中某部分进行研究,这样会事半功倍。 整体架构 我们想要了解一个框架,首先要了解它是干什么的,Tomcat我们都知道,是用于处理连接过来的Socket请求的。那么Tomcat就会有两个功能: 对外处理连接,将收到的字节流转化为自己想要的Request和Response对象 对内处理Servlet,将对应的Request请求分发到相应的Servlet中 那么我们整体的骨架就出来了,Tomcat其实就分为两大部分,一部分是连接器(Connnector)处理对外连接和容器(Container)管理对内的Servelet。大体的关系图如下

四.docker容器管理

对着背影说爱祢 提交于 2020-03-08 23:47:31
试验机192.168.181.144 用户root 密码123456 主机名 root@web:/# hostname web docker container run -d --name web2 -P nginx #-P :发布容器中声明EXPOSE端口到宿主机的随机端口; #docker ps -l #列出最新创建的容器; CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 803a6db849ab nginx "nginx -g 'daemon of…" 16 seconds ago Up 9 seconds 0.0.0.0:32768->80/tcp web2 http://192.168.181.144:32768/ docker image prune 移除不使用的镜像; Export 导出容器文件系统 -----------针对容器导出导入,不会保存层级信息,快照。 import导入容器文件 Save 保存导出完整镜像;docker image save nginx > nginx.tar ------针对镜像持久化,可以保存层级信息以及历史数据,俗称元数据。 Load 导入镜像 docker image load < nginx.tar Docker stats web 动态查看运行内存状态 Docker

docker

余生颓废 提交于 2020-03-08 22:23:07
Docker 入门到精通 """ 1)docker就是Linux上及其轻量的虚拟机 2)虚拟机是存在宿主系统中,通过镜像给宿主系统拓展子系统的(一个镜像理论上可以做n个子系统) 3)两个特别重要的概念 image:镜像 container:容器(子系统) 4)工作方式: i)在服务器系统下载docker(为服务器安装虚拟机,服务器系统就是宿主系统) ii)用docker去下载对应需求的镜像:镜像操作 iii)通过镜像制造容器(装子系统):容器操作 5)优势 i)超级轻量级,docker安装的容器体积可以按kB度量 ii)集群部署,docker可以通过一个镜像制造出多个一模一样的容器 iii)便捷管理所有镜像与容器(命令行操作) 6)镜像和容器特点 一般一个镜像中只包含一种软件:比如mysql镜像,创建的容器中只有mysql环境;redis镜像,创建的容器中只有redis环境 注:一个镜像中有多个环境的需要自己制作镜像 """ CentOS安装Docker 设置管理Docker的仓库 """ 1)安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2)安装稳定仓库 yum-config-manager --add-repo https://download.docker.com/linux

docker快速搭建redis容器

戏子无情 提交于 2020-03-08 20:23:56
通过docker命令快速搭建redis容器 首先下载 redis 镜像,使用 5.0.7 版本: docker pull redis:5.0.7 通过 docker image inspect redis:5.0.7 可以看到容器的数据是存在 /data 里面的。 我们在宿主机器创建保存数据的目录以及 redis 配置文件的目录: # 创建保存数据的目录 mkdir -p /home/docker/redis/data # 创建保存redis配置文件的目录 mkdir -p /home/docker/redis/conf 在 /home/docker/redis/conf 下面创建 redis.conf 配置文件: cd /home/docker/redis/conf touch redis.conf vi redis.conf 填写如下配置: # 允许远程访问 bind 0.0.0.0 protected-mode no # 连接密码 requirepass password 创建 redis 容器,命名为 my-redis : docker run -p 6379:6379 -v /home/docker/redis/data:/data -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d --name

云原生技术的了解

笑着哭i 提交于 2020-03-08 18:55:45
云原生技术的了解 参考资料 迁移到云原生应用架构 kubernetes 手册 etcd 架构与实现解析 什么是云原生 云原生应用架构的几个主要特征: 符合12因素应用 面向微服务架构 自服务敏捷架构 基于API的协作 抗脆弱性 到了2015年Google主导成立了云原生计算基金会(CNCF),起初CNCF对云原生(Cloud Native)的定义包含以下三个方面: 应用容器化 面向微服务架构 应用支持容器的编排调度 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括 容器 、 服务网格 、 微服务 、 不可变基础设施 和 声明式API 。 这些技术能够构建 容错性好 、 易于管理 和 便于观察 的 松耦合系统 。 云原生本身甚至不能称为是一种架构,它首先是一种基础设施,运行在其上的应用称作云原生应用,只有符合云原生设计哲学的应用架构才叫云原生应用架构。 云原生系统的设计理念如下: 面向分布式设计(Distribution):容器、微服务、API 驱动的开发; 面向配置设计(Configuration):一个镜像,多个环境配置; 面向韧性设计(Resistancy):故障容忍和自愈; 面向弹性设计(Elasticity):弹性扩展和对环境变化(负载)做出响应; 面向交付设计(Delivery):自动拉起,缩短交付时间;