# springcloud_study **Repository Path**: weedd/springcloud_study ## Basic Information - **Project Name**: springcloud_study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #linux-- shell init : #nginx:(shell子进程) # commod &(剥离到后台执行不占用控制台) # nohub commod &(剥离到后台执行不占用控制台开一个新的线程,不会随着父进程关闭而关闭,由内核启动,此时shell命令好多都不执行不了) exec commod 最后一句顶替shell进程成为主进程。 #dockerfile 命令 1.如何制作镜像 ._基于dockerfile ._基于容器 2.两类语句组成 ._注释 ._指令 3.基础:(里面全是基础容器带有指令) ##---取变量,如果IMAGENAME不为空显示其值,没值显示默认值tom $(IMAGENAME:-tom) 4.存储卷 docker 镜像由多个只读层叠加而成,docker只会加载最上层 .--需要一个文件共享系统。有状态的应用都是需要持久化数据的。nginx(无状态),mysql(有状态),有状态的存储卷必须是存在的,用来持久化数据。 docker没法解决数据卷跨物理机共享,现在docker默认数据卷会只能和在宿主机上目录挂载 Volume: 绑定挂载卷: 让两个已知目录的建立关系。 docker管理的卷: 只需指定容器中自带的路径,其他由docker自行管理宿主机想。 复制已存在的容器的卷 5.docker 命令(构建Dockerfile) FROM $(IMAGENAME:VERSION) ---必须为非注释语句第一句 ,当version不传的时候为最新版本。 MAINTAINER: "${usename}" 作者-->被替换为label 例子:MAINTAINER "ZCC<8604@qq.com>" label:元数据 LBAEL MAINTAINER="${usename}" copy: copy ${sourse} ${target} 如果sourse是个目录target必须以/结尾 add: copy ${sourse} ${target} sourse 可以是url, 不会解压 如果是个本地文件会进行解压 ./: 代表当前路径 workdir path :当前工作路径(相当于容器:cd)例子:workdir /temp VOLUME path: 这个只能将使用默认管理卷不能自行指定。例子:VOLUME /temp EXPOSE $ 例子:EXPOSE 8080/udp (docker 监听的端口) ENV: 为Dockerfile 定义环境变量 ------------------------------------以上为build-----json数组必须用""------------------------- RUN: 处于build阶段 例子:(默认会开启线程&&代表语句拼接\代表换行拼接,可以运行多条run语句但在编写一个条命令尽量合并,不然会开一个新的层) - RUN cd /usr/tar &&\ mv nginx zcc/ -RUM COMMOD 会以shell为命令执行相当于(/bin/sh -c) -RUM ["excutable","param"] bu CMD: 容器启动运行的命令(只会生效一个,用来启动程序的) -CMD COMMOD -CMD ["excutable","param1","param2"] -CMD ["param1","param2"] 需要结合ENTRYPOINT使用 -----------查看某个容器相关 docker inspect --进入容器内部 docker exec -it 38a2cae4c32f sh; exit; --------------------------------------------------------k8s DevOps: CI: 持续集成,代码发布打包。 CD: 持续发布 CD: 持续交付 特性 1. 自动装箱 自我修复 自动实现水平扩展 (自动实现服务发现负载均衡) ,自动发布和回滚。 2.秘钥和配置管理 (基于环境变量---配置中心) 3.存储编排,存储卷动态 4.任务批处理运行 概念 集群,(将多台主机整合在一起,进行资源分配 ) master+nodes(worker) p2p-->中心节点 node一般是资源池 master apiserver 调度器:根据容器的请求的配置,将容器放到哪个节点node.进行服务调度 控制管理器:监控控制器 node 控制器: 有很多:(如监控容器是否正常运行,如果容器挂了,他会像apiserver 发请求,将容器起来)。 kubelet:集群连接主节点的 docker:容器 kube-proxy pod 容器的外壳 是k8s是最小的调度单元,相当于虚拟机 ,可以有多个容器,共享net host 存储卷 label : key-v 元数据 label Selector: 1.自主式--->调用apiserver --->调度器 2.控制管理的pod 不同的pod控制器 实现某种容器运行状态 replicationController:副本控制器,控制同一类,滚动更新。 replicaSet(deployment):无状态副本集控制器(二级控制器hpa 自动进行扩展应用数理) statefulSet:有状态 DacMonSet: job.Ctonjob: -----------------------------------------服务发现--------------------------------------------- AddOns:附加组件 dns 动态创建 service :服务发现 根据pod配置的label,然后探测出ip地址。 ipvs 手动创建 控制器: 通过控制器创建pod. -------------------------------------------------------------------------------------------- 节点网络 service网络 pod网络 --------------------------------------------------------------------------------------------- 同一pod内多个容器:lo 各个pod之调用 不允许。 ???。 --------------------overLayNetWork,叠加网络---------------------------------------------------------- etcd:像zookeeper. 存储集群信息的。