容器

k8s中pod的资源对象(名称空间,获取策略,重启策略,健康检查)

自作多情 提交于 2020-01-12 22:16:19
一,k8s的资源对象 Deployment、Service、Pod是k8s最核心的3个资源对象 Deployment: 最常见的无状态应用的控制器,支持应用的扩缩容、滚动升级等操作。 Service: 为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接口,用于服务发现和服务访问。 Pod: 是运行容器以及调度的最小单位。同一个pod可以同时运行多个容器,这些容器共享net、UTS、IPC,除此之外还有USER、PID、MOUNT。 ReplicationController: 用于确保每个Pod副本在任意时刻都能满足目标数量,简单来说,它用于每个容器或容器组总是运行并且可以访问的:老一代无状态的Pod应用控制器。 RwplicatSet: 新一代的无状态的Pod应用控制器,它与RC的不同之处在于支持的标签选择器不同,RC只支持等值选择器(键值对),RS还额外支持基于集合的选择器。 StatefulSet: 用于管理有状态的持久化应用,如database服务程序,它与Deployment不同之处在于,它会为每一个pod创建一个独有的持久性标识符,并确保每个pod之间的顺序性。 DaemonSet: 用于确保每一个节点都运行了某个pod的一个副本,新增的节点一样会被添加到此类pod,在节点移除时,此pod会被回收。 Job: 用于管理运行完成后即可终止的应用

Ddockerfile里的CMD和ENTRYPOINT的区别(图文介绍,超详细)

北慕城南 提交于 2020-01-12 21:13:31
Dockerfile中的ENTRYPOINT指令和CMD指令都可以设置容器启动时要执行的命令,但用途是有略微不同的。 ENTRYPOINT指令和CMD指令虽然是在Dockerfile中定义,但是在构建镜像的时候并不会被执行,只有在执行docker run命令启动容器时才会起作用。 1。在Dockerfile中,只能有一个ENTRYPOINT指令,如果有多个ENTRYPOINT指令则以最后一个为准。 2。在Dockerfile中,只能有一个CMD指令,如果有多个CMD指令则以最后一个为准。 3。在Dockerfile中,ENTRYPOINT指令或CMD指令,至少必有其一。 1. ENTRYPOINT指令 首先,执行docker run如果带有其他命令参数,不会覆盖ENTRYPOINT指令。 不过,docker run的–entrypoint可以覆盖Dockerfile中ENTRYPOINT设置的命令,后续文章详述。 1) exec格式用法(推荐) ENTRYPOINT [“top”,"-b", “-H”] exec格式,也被称为JSON风格[“command”,“arg1”]。 在创建容器实例执行docker run命令时,设置的任何命令参数或CMD指令的命令,都将作为ENTRYPOINT指令的命令参数,追加到ENTRYPOINT指令的命令之后。 如

k8s 2. 重要概念

半城伤御伤魂 提交于 2020-01-12 20:08:10
参考《每天5分钟玩转kubernetes》 ColdMan著。 一、概念 1. Cluster cluster是计算、存储和网络资源的集合, k8s使用这些资源运行基于容器的应用 2. Master cluster的大脑,主要职责是调度,决定将应用放在哪里运行。在linux上运行(物理机or虚拟机)。为了高可用,可运行多个master。 3. Node 职责是运行容器应用。由master管理,监控、汇报容器状态,要据master要求管理容器生命周期。运行于linux(物理机or虚拟机) 4. Pod 最小工作单元,每个pod包含1个or多个容器。作为整体被master调度到node上运行。 4.1 引入pod(比容器更高层次的抽象)的目的: (1) 可管理性。 将需要一起工作的(紧密联系的)容器封装到同一个部署单元,以pod为最小单位进行调度、扩展、共享资源、管理生命周期。 (2) 通信和资源共享。 pod中所有容器使用同一个网络namespace(相同ip+port),可直接用localhost通信。共享存储,k8s挂载volume到pod,本质是将volume挂载到pod中的每个容器。 4.2 Pods的2种使用方式 (1) 运行单一容器 one-container-per-Pod, 只将单个容器简单封装成pod. (2) 运行多个容器

容器技术Docker、Docker-Compose、k8s的演变

匆匆过客 提交于 2020-01-12 18:38:22
  越来越多的应用开始容器化以及上云,可能有些人直接接触的就是k8s(Kubernetes)的概念以及操作了,但是理清一下容器化技术的一些演变过程,是一件很有意思的事情,同时也可以加强我们对容器化技术的深入理解和具体场景下运用哪种技术。 一、Docker vs 虚拟机   KVM技术的发展,解放了单台服务器物理机的资源过剩的浪费,虚拟机的资源互相独立,部署应用不受影响,但缺点是占用资源多,有安全补丁更新时候要一起更新,管理起来比较麻烦。容器Docker就是为了解决这种困境,在耗费资源低的情况下,又可以方便部署资源和依赖互相独立的应用,从而实现快速部署。他们俩的层级差异如图:   正如docker的鲸鱼图上的集装箱一样,docker的容器运行是以沙盒的机制运行,共享底层操作系统,会把应用需要的依赖打包在一起,以沙盒的方式,在同类型的操作系统上,可以自由迁移部署运行,如此就可以极大地解放了部署环境不一致的问题。 二、Docker-Compose 的诞生   容器化的盛行,也带来了新的问题,那就是如何高效地去部署和管理这些镜像呢?因为比较大型的应用服务,往往需要多个组件一起合作才能正常运行,这就给单docker容器部署提出了挑战,Docker-Compose就像下面这只八爪章鱼,可以同时进行多容器的构建以及部署运行。 三、k8s(Kubernetes)的横空出世 vs Docker

Docker安装Mysql

早过忘川 提交于 2020-01-12 17:30:31
1. 拉取mysql镜像 docker pull mysql 2. 运行容器 docker run \ --name mysqldb \ -p 520:3306 \ -v /home/data/mysql/config:/etc/mysql/conf.d \ -v /home/data/mysql/data:/var/lib/mysql \ -v /home/data/mysql/log:/var/log/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql 命令说明: --name :容器的名字 -p 520:3306:将容器的 3306 端口映射到主机的 520 端口。 -v /home/data/mysql/config:/etc/mysql/conf.d:将主机目录下的/home/data/mysql/config/my.cnf 挂载到容器的 /etc/mysql/my.cnf。 -v /home/data/mysql/data:/var/lib/mysql :将主机当前目录下的 /home/data/mysql/data目录挂载到容器的 /var/lib/mysql 。 -v /home/data/mysql/log:/var/log/mysql :将主机当前目录下的 /home/data/mysql/log 目录挂载到容器的

Docker(三)--Docker-Compose编排容器

我们两清 提交于 2020-01-12 17:23:39
将本地镜像发布到阿里云 有时候需要共享镜像或者习惯使用自己定义的镜像,可以注册私有仓库,国内推荐使用阿里云 步骤: 1.登录阿里云容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances/repositories 2.将镜像推送到阿里云 # 登录阿里云的docker仓库 $ sudo docker login --username = [ 用户名 ] registry.cn-hangzhou.aliyuncs.com # 创建指定镜像的tag,归入某个仓库 $ sudo docker tag [ ImageId ] registry.cn-hangzhou.aliyuncs.com/wugao/tomcat: [ 镜像版本号 ] # 讲镜像推送到仓库 $ sudo docker push registry.cn-hangzhou.aliyuncs.com/wugao/tomcat: [ 镜像版本号 ] 3.拉取镜像 sudo docker pull registry.cn-hangzhou.aliyuncs.com/wugao/tomcat: [ 镜像版本号 ] Docker 网络 Docker允许通过外部访问容器或容器互联的方式来提供网络服务。 安装Docker时,会自动安装一块Docker网卡称为docker0

centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解

自作多情 提交于 2020-01-12 17:12:56
  系统环境:centos7.7   镜像image 版本:phpmyadmin/phpmyadmin(截止2020.01.10最新版)    参考文章: https://blog.csdn.net/a2589293499/article/details/102938724   一、根目录下的phpmyadmin访问。   1、查看版本。      2、拉取最新版本。 视网络速度等待~~      3、查看镜像。      4、运行。 先启动一个临时容器,假设你已经有一个可ip连接的mysql数据库。   docker run --name my_phpadmin_2020 -d -p 8001:80 --restart=always -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 -e TZ="Asia/Shanghai" phpmyadmin/phpmyadmin      5、访问。 浏览器访问ip:8001。报错 mysqli_real_connect(): (HY000/2002): No route to host ,问题原因是配置的访问ip不对      6、解决问题。 复制phpmyadmin 容器的配置文件config.sample.inc.php到宿主机config.inc.php。         设置 $cfg[

一步一步搭建docker ngix 及重点讲解

╄→гoц情女王★ 提交于 2020-01-12 15:54:54
 images版本:nginx:latest   1、拉取镜像 docker pull nginx      2、启动nginx容器。    docker run --name my_nginx_2020 -d -p 80:80 --restart=always -e TZ="Asia/Shanghai" nginx:latest      3、访问80站点。     4、挂载nginx配置文件到宿主机。 以上访问正常,但如果要配置自己的项目文件,或者修改访问路径文件需要登录到容器中去,还需要安装vi等,所以我们下面使用挂载文件挂载到宿主机,一切修改在宿主机操作,还可以避免配置丢失。    A、登录nginx容器。 docker exec -it my_nginx_2020 bash。进入/etc/nginx 查看文件列表,其中nginx.conf 配置nginx的全局基础属性配置。conf.d 存放访问路径的配置文件,本文不结束nginx相关使用介绍,请自行搜索配置参数含义~~         B、more nginx.conf 查看配置内容。 通过文件内容可以看到日志是存储在容器的 /var/log/nginx 文件夹下。更多配置要去conf.d 文件夹下查看。         C、查看conf.d文件夹内文件配置。 看到conf.d文件夹下只有一个default.conf文件

Spring Processor 是什么?

蹲街弑〆低调 提交于 2020-01-12 13:55:21
本文内容如有错误、不足之处,欢迎技术爱好者们一同探讨,在本文下面讨论区留言,感谢。 文章目录 简述 自定义Processor类 原理 Spring 中的 Processor Spring 实现类 实现 BeanFactoryPostProcessor 实现 BeanPostProcessor Spring Boot 中的 Processor Spring Boot 实现类 实现 EnvironmentPostProcessor 例子 Spring 的例子 BeanFactoryPostProcessor BeanPostProcessor Spring Boot 的例子 EnvironmentPostProcessor 结论 参考资料 简述 Processor 中文翻译:处理器、加工机,这里 Processor 只是一种实现类描述其功能具有处理能力。 在 Spring 中,有两个核心 Processor 接口: BeanPostProcessor 和 BeanFactoryPostProcessor ; 在 Spring Boot 中, 有个核心 Processor 接口: EnvironmentPostProcessor ; 通过阅读 Spring 源码可以学习到许多设计和类命名上的知识,不但可以帮助学习 Spring 框架,而且也可以帮助学习优秀编码习惯。

【Docker】退出容器和进入容器

为君一笑 提交于 2020-01-12 11:35:00
运行容器:docker run -it 镜像名 /bin/bash 退出容器: exit 或者 Ctrl+P+Q 查看容器:docker ps -a 查看运行的容器:docker ps 重启容器:docker restart 容器ID 重启容器后进入交互式:docker start -i 5c6ce895b979 进入容器:docker attach 容器ID docker exec -it 容器ID /bin/bash 来源: CSDN 作者: DS_树苗 链接: https://blog.csdn.net/xwnxwn/article/details/103943508