音乐网站设计总结,公司的宣传片怎么制作,网站建设运营协议书,网站建设好后为什么要维护目录 一、Docker的核心1#xff0c;Docker引擎2#xff0c;Docker基础命令3#xff0c;单个容器运行多个服务进程4#xff0c;多个容器运行多个服务进程5#xff0c;备份在容器中运行的数据库6#xff0c;在宿主机和容器之间共享数据7#xff0c;在容器之间共享数据8Docker引擎2Docker基础命令3单个容器运行多个服务进程4多个容器运行多个服务进程5备份在容器中运行的数据库6在宿主机和容器之间共享数据7在容器之间共享数据8对容器进行数据复制 二、Docker网络1查看容器的IP地址2将容器端口暴露到主机上3 单主机容器间通信4多主机容器间通信5选择容器网络模式6配置守护进程防火墙7IP转发设置 三、Kubernetes1简称k8s2三大核心对象3增强功能4全新的概念5Kubernetes 架构6创建一个多节点的Kubernetes集群7在Kubernetes集群上启动容器8通过标签查询和删除Kubernetes对象9管理pod的副本数10一个pod中运行多个容器 一、Docker的核心 1Docker引擎
定义 基于单主机运行的守护进程 作用 创建和管理容器
2Docker基础命令
docker ps
列出所有运行中的容器docker ps -a
列出所有容器docker run
前端启动运行容器docker run -d
后台启动运行容器docker stop
发送SIGTERM到容器一定时间内没有停止则会再送SIGKILL信号docker skill
发送SIGKILL信号到容器docker restart
重启容器docker rm
移除容器docker rm $(docker ps -a -q)
删除所有处于停止中的容器docker build
构建一个新镜像docker images
列出所有的镜像docker rmi
移除镜像3单个容器运行多个服务进程 使用Supervisor来监控并运行 Supervisor用来控制多个进程的普通程序 4多个容器运行多个服务进程 通过设置 --link 选项将容器连接在一起 5备份在容器中运行的数据库 方式一 进入容器执行数据库备份命令 方式二 通过设置 -v 选项将宿主机和容器中的卷绑定 6在宿主机和容器之间共享数据 通过设置 -v 选项将宿主机的卷挂载到容器中 7在容器之间共享数据 通过设置 -v 选项创建一个称为数据容器的容器 8对容器进行数据复制 使用 docker cp 命令将文件从正在运行的容器复制到 Docker 主机 二、Docker网络 1查看容器的IP地址
方式一 docker inspect命令并指定一个Go模板格式
docker inspect --format {{ .NetworkSettings.IPAddress }} flask方式二 docker exec 命令在容器内部执行命令
docker exec -ti flask ip add | grep global方式三 查看容器内的 /etc/hosts 文件
docker exec -ti flask cat /etc/hosts | grep flask方式四 进入容器中的 shell输入标准的 Linux 命令
docker exec -ti flask bash || cat /etc/hosts2将容器端口暴露到主机上
方式一 docker run 命令的 -P 选项将容器内的端口动态绑定到宿主机上
docker run -d -p 5000 --name foobar flask方式二 创建镜像时在Dockerfile 中添加 EXPOSE 5000
docker run -d -P flask3 单主机容器间通信
单台 Docker 主机网络拓扑图
4多主机容器间通信
多主机环构建一个通用路由封装Generic Routing EncapsulationGRE来对 IPv4 通信进行封装并为容器之间互连提供基于容器私有地址的路由
两台主机 GRE 隧道覆盖网络图
5选择容器网络模式
docker run 命令的–net 选项
模式一 主机模式 实例
docker run -it --rm --nethost ubuntu:14.04 bash模式二 无网络模式 实例
docker run -it --rm --netnone ubuntu:14.04 bash模式三 与其他容器共享网络的模式 实例
docker run -ti --rm --netcontainer:cocky_galileo ubuntu:14.04 bash6配置守护进程防火墙 启动 Docker 守护进程时通过 --ip-forwardfalse 和 --iptablesfalse 参数对 Docker的网络进行定制 7IP转发设置
启用
echo 1 /proc/sys/net/ipv4/ip_forward禁用
echo 0 /proc/sys/net/ipv4/ip_forward三、Kubernetes 1简称k8s 定义 它是一个编排系统 编排系统 将一组主机也称为节点视为一个统一、可编程、可靠的集群 2三大核心对象 1pod 2service 3replication controller 3增强功能 可靠的容器重启 Kubernetes 可以监视容器的运行状况并在出现故障时重新启动容器 自愈 如果一个节点失效了Kubernetes 会自动将失效节点上的任务重新调度到健康的节点上 动态服务归属机制可以确保这些新启动的容器能被发现并使用 高集群利用率 通过在一组通用的计算机上调度一组不同类型的工作负载与静态的手动配置方式相比用户可以大幅提高计算机的利用率 组织和分组 Kubernetes 提供了一个灵活的标签label系统让用户和其他系统可以以一组容器为单位来进行处理 Kubernetes 支持命名空间功能让不同的用户或团队在集群中看到相互隔离的不同视图 水平扩展和复制 扩展和负载平衡 微服务友好 应用程序可以被分解成更易于开发、扩展和推导的更小单位。 Kubernetes 提供了服务发现以及与其他服务进行通信的方式 简化运维 指定应用程序的运维团队或者开发团队自己可以专注于应用程序的运行而不必去具体地管理各个节点 4全新的概念
1集群调度 选择一个节点来运行新容器以优化集群的可靠性和利用率的过程
2pod 必须将一组容器放置到同一个节点上像一个团队一样工作
3标签 添加到 pod 的元数据用于对容器进行分组以进行监控和管理
4replication controller 用于确保系统能进行水平扩展的代理agent也负责保证对 pod 进行可靠的管理
5网络服务 一种用于在 pod 之间以及几组 pod 之间进行通信的方式采用了动态配置的命名和网络代理
5Kubernetes 架构 1Kubernetes master 服务 提供了 API 来收集和展现群集的当前状态并在节点之间分配 pod 2主节点存储 所有的持久化状态都保存在 etcd 中 3kubelet 这个代理agent运行在每个节点之上负责控制 Docker向 master 报告自己的状态以及配置节点级别的资源比如远程磁盘存储 4 proxy 这个代理proxy运行于每个节点之上也能在其他地方运行为本地容器提供了一个单一的网络接口以连接到一组 pod 5Kubernetes service 用于集群内容器之间的通信 用于将外部流量转发到一组 pod 6创建一个多节点的Kubernetes集群 1安装 Vagrant和 VirtualBox 2设置环境变量KUBERNETES_PROVIDER (该变量表明你将要使用Vagrant) 3设置环境变量NUM_MINIONS [该变量用来设置集群中要启动的节点的数量(除master 节点之外的节点数量)] 4使用由 Kubernetes 社区提供的安装脚本 5vagrant status 命令可以列出运行中的虚拟机 6 Kubernetes 集群创建成功并可以正常使用 7在Kubernetes集群上启动容器 1下载Kubernetes 客户端 kubectl 2设置集群正确的 API 地址以及相应的身份验证信息 3创建一个Json/Yaml 格式的 pod 定义文件 4通过 kubectl 客户端将这个文件提交到 Kubernetes API server 5当镜像下载完成之后容器就会开始运行 8通过标签查询和删除Kubernetes对象
打标签 方式一 使用标签label给你的对象比如 pod打上标签 实例 修改 pod 的 yaml 元数据描述部分增加一个 foobar 的标签 方式二 通过 kubectl label 命令在运行时进行打标签 实例 kubectl label pods 2048 envproduction 通过标签查询Kubernetes对象 通过 kubectl 命令的 --selector 参数列出具有指定标签的所有 pod 实例 kubectl get pods --selector“foobar” 通过标签删除Kubernetes对象 通过指定标签选择器来删除你的 pod 实例 kubectl delete pod --selector“foobar” 9管理pod的副本数
使用 replication controller为 pod 指定希望的副本数 增加副本数 使用 kubectl resize 实例
kubectl resize --replicas4 rc rcgame10一个pod中运行多个容器 在安装时通过环境变量进行配置 即修改Json/Yaml 格式的 pod 定义文件