当前位置: 首页 > news >正文

城阳做网站找哪家好免费网站建设力荐 186一6159一6345绘政正规

城阳做网站找哪家好,免费网站建设力荐 186一6159一6345绘政正规,品牌推广费,抖音关键词排名优化K8s 是什么 Kubernetes是一个开源的#xff0c;用于管理云平台中多个主机上的容器化的应用#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效#xff08;powerful#xff09;,Kubernetes提供了应用部署#xff0c;规划#xff0c;更新#xff0c;维护的机制…K8s 是什么 Kubernetes是一个开源的用于管理云平台中多个主机上的容器化的应用Kubernetes的目标是让部署容器化的应用简单并且高效powerful,Kubernetes提供了应用部署规划更新维护的机制。前身为 谷歌的 Borg kubernetes的本质是一组服务器集群它可以在集群的每个节点上运行特定的程序来对节点中的容器进行管理。目的是实现资源管理的自动化。 K8s有什么功能 自我修复一旦某一个容器崩溃能够在1秒中左右迅速启动新的容器 弹性伸缩可以根据需要自动对集群中正在运行的容器数量进行调整 版本回退如果发现新发布的程序版本有问题可以立即回退到原来的版本 服务发现服务可以通过自动发现的形式找到它所依赖的服务 负载均衡如果一个服务起动了多个容器能够自动实现请求的负载均衡 存储编排可以根据容器自身的需求自动创建存储卷实现自动虚拟容器和磁盘的映射 K8s解决了什么问题 部署方式的演变 传统部署互联网早期会直接将应用程序部署在物理机上 优点简单不需要其它技术的参与 缺点不能为应用程序定义资源使用边界很难合理地分配计算资源而且程序之间容易产生影响 虚拟化部署可以在一台物理机上运行多个虚拟机每个虚拟机都是独立的一个环境 优点程序环境不会相互产生影响提供了一定程度的安全性 缺点增加了操作系统浪费了部分资源 容器化部署docker与虚拟化类似但是共享了操作系统 优点 可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等 运行应用程序所需要的资源都被容器包装并和底层基础架构解耦 容器化的应用程序可以跨云服务商、跨Linux操作系统发行版进行部署 缺点 一个容器故障停机了怎么样让另外一个容器立刻启动去替补停机的容器 当并发访问量变大的时候怎么样做到横向扩展容器数量 解决方案 Swarm Docker自己的容器编排工具 MesosApache的一个资源统一管控的工具需要和Marathon结合使用 KubernetesGoogle开源的的容器编排工具 K8s架构与组件 一个kubernetes集群主要是由控制节点(master)、**工作节点(node)**构成每个节点上都会安装不同的组件。 Master节点 集群控制节点每个集群需要至少一个master节点负责集群的管控 组成 ApiServer : 资源操作的唯一入口接收用户输入的命令提供认证、授权、API注册和发现等机制 Scheduler : 负责集群资源调度按照预定的调度策略将Pod调度到相应的node节点上 ControllerManager : 负责管理Controller 控制器 Controller控制器通过它来实现对pod的管理比如启动pod、停止pod、伸缩pod的数量等等 Etcd 负责存储集群中各种资源对象的信息持久化存储 Node节点 工作负载节点由master分配容器到这些node工作节点上然后node节点上的docker负责容器的运行 组成 Kubelet : 负责维护容器的生命周期即通过控制docker来创建、更新、销毁容器 KubeProxy : 负责提供集群内部的服务发现和负载均衡4层 container-runtime 容器的运行时环境 docker 、CRI-O Docker : 负责节点上容器的各种操作 Podkubernetes的最小控制单元容器都是运行在pod中的一个pod中可以有1个或者多个容器 K8s资源和对象 k8s中所有的内容都被抽象为对象如 pod service Node 等对资源的创建修改删除都是通过调用 api-server 来实现 对象规约和状态 规约 spec :“规格” 的意思spec 是必需的它描述了对象的期望状态 状态status 表示对象的实际状态该属性由 k8s 自己维护k8s让对象尽可能的让实际状态与期望状态重合。 资源分类 集群 集群级别的资源作用于集群之上集群内的所有资源都可共享 NameSpace命名空间用来隔离pod的运行环境不同namespce之前相互隔离 元数据元数据级别的资源 每个资源都可以访问 元数据级别 Horizontal Pod AutoscalerHPA 自动扩缩容 Pod 自动扩容可以根据 CPU 使用率或自定义指标metrics自动对 Pod 进行扩/缩容。 控制管理器每隔30s可以通过–horizontal-pod-autoscaler-sync-period修改查询metrics的资源使用情况 在API Server Aggregator中注册自定义的metrics API 2.PodTemplate pod模板 Pod Template 是关于 Pod 的定义 控制器通过 Pod Template 信息来创建 Pod 3.LimitRange 可以对集群内 Request 和 Limits 的配置做一个全局的统一的限制相当于批量设置了某一个范围内某个命名空间的 Pod 的资源使用限制。 集群级别 1.namespace 2.Node 3.ClusterRole 是一组权限的集合但与 Role 不同的是ClusterRole 可以在包括所有 Namespace 和集群级别的资源或非资源类型进行鉴权。 4.ClusterRoleBinding 将 Subject 绑定到 ClusterRoleClusterRoleBinding 将使规则在所有命名空间中生效。 Namespace 命名空间级别 pod 服务发现 (Service Ingress) 存储 (volume CSI) 特殊类型配置 (configMap Secret) 其他Role RoleBinding Podk8s最小可部署单元是一个容器组 pause容器 每个 Pod 中 会创建一个 pause 容器用来共享网络文件系统 内存 等 pause容器作为您pod中所有容器的父容器。 启用PID(进程ID)名称空间共享后它将作为每个pod的PID 1进程根进程并回收僵尸进程。 Pod探针 容器内应用的监测机制根据不同的探针来判断容器应用当前的状态 StartupProbe启动探针 当配置了 startupProbe 后会先禁用其他探针直到 startupProbe 成功后其他探针才会继续,保证pod真正启动完毕再执行其他探针 ReadinessProbe就绪探针 用于探测容器内的程序是否就绪它的返回值如果返回 success那么就认为该容器已经完全启动并且该容器是可以接收外部流量的。 LivenessProbe存活探针 用于探测容器中的应用是否运行如果探测失败kubelet 会根据配置的重启策略进行重启若没有配置默认就认为容器启动成功不会执行重启策略。 探测方式 ExecAction: 在容器内部执行一个命令如果返回值为 0则任务容器时健康的。 TCPSocketAction :通过 tcp 连接监测容器内端口是否开放如果开放则证明该容器健康 HTTPGetAction :生产环境用的较多的方式发送 HTTP 请求到容器内的应用程序如果接口返回的状态码在 200~400 之间则认为容器健康。 配置参数 initialDelaySeconds: 60 # 初始化持续时间ss timeoutSeconds: 2 # 超时时间 periodSeconds: 5 # 监测间隔时间 successThreshold: 1 # 检查 1 次成功就表示成功 failureThreshold: 2 # 监测失败 2 次就表示失败 Pod 生命周期 1 pod创建过程 2 运行初始化容器过程init container 3 运行主容器过程main container 4 容器启动钩子post start容器终止前钩子pre stop启动探针、 就绪探针、存活探针 5 pod终止 资源调度标签选择器、控制器、守护进程 lable 和 selector Lable标签 对pod打上标签 进行分类可通过 配置文件和命令行kubectl lable创建 修改 查看 标签 Selector 选择器根据 标签 来筛选和匹配对应的 pod通过 kubectl get 来查询 可根据一个 或多个 标签来进行匹配 Deployment无状态pod控制器 Deployment是k8s用来管理部署无状态Pod的控制器 RC :replicationcontroller 动态更新 pod 的副本数量 实现扩缩容 已弃用 RS :replicaSet 动态更新pod 副本数量实现扩缩容可以通过 selector来选择对哪些pod生效 Deployment 针对 RS 更高层次的封装实现的更丰富的功能。 创建查看 创建 kubectl create deploy xxx 查看 kubectl get deployments 查看RS kubectl get rs 滚动更新 修改了deployment 配置文件中的 template 中的属性后才会触发更新操作 一步步复制容器过来再将原来容器不可用而非一步完成 查看滚动更新的过程 kubectl rollout status deploy xxxx 多个滚动更新同步执行后开始的更新会将先开始的更新删除掉再执行 回滚 更新失败则需要回滚 通过 kubectl rollout history deployment xxx 获取版本信息 version 确认要回退的版本后可以通过 kubectl rollout undo deployment 可以回退到上一个版本 也可以回退到指定的 revision kubectl rollout undo deployment/nginx-deploy --to-revision2 可以通过设置 .spec.revisonHistoryLimit 来指定 deployment 保留多少 revison如果设置为 0则不允许 deployment 回退了。 扩容缩容 扩容缩容可以应对流量激增等情况修改副本数量平稳后可缩回来 通过 kube scale 命令可以进行自动扩容/缩容以及通过 kube edit 编辑 replcas 也可以实现扩容/缩容 扩容与缩容只是直接创建副本数没有更新 pod template 因此不会创建新的 rs 暂停与恢复 每次对 pod template 中的信息发生修改后都会触发更新 deployment 操作那么此时如果频繁修改信息就会产生多次更新 而实际上只需要执行最后一次更新即可当出现此类情况时我们就可以暂停 deployment 的 rollout 通过 kubectl rollout pause deployment 可以暂停 deployment。 kubectl rollout deploy 恢复 StatefulSet 有状态pod控制器 StatefulSet是k8s用来管理部署有状态Pod的控制器 有状态服务会依赖本地的网络文件等 创建 扩容缩容 扩容 kubectl scale statefulset web --replicas5 缩容 kubectl patch statefulset web -p ‘{“spec”:{“replicas”:3}}’ 镜像更新 目前还不支持直接更新 image需要 patch 来间接实现 RollingUpdate滚动更新策略 StatefulSet 也可以采用滚动更新策略同样是修改 pod template 属性后会触发更新 在 StatefulSet 中更新时是基于 pod 的顺序倒序更新的 OnDelete更新策略 只有在 pod 被删除时会进行更新操作 灰度发布 利用滚动更新中的 partition 属性可以实现简易的灰度发布的效果 例如我们有 5 个 pod如果当前 partition 设置为 3那么此时滚动更新时只会更新那些 序号 3 的 pod 删除 级联删除删除 statefulset 时会同时删除 pods kubectl delete statefulset web 非级联删除删除 statefulset 时不会删除 pods删除 sts 后pods 就没人管了此时再删除 pod 不会重建的 删除 pvc statefulSet删除后PVC还会保留着数据不再使用的话也需要删除 kubectl delete pvc xxxx DaemonSet 为每个匹配的Node 设置守护进程是一个容器副本 一般用来日志收集系统监控es 等 通过 selector 来用 标签匹配 node NodeSlector :节点选择器 会自动监控并对匹配的Node部署守护进程 也支持 滚动更性和Ondelete 一般使用 ondelete 服务发现 Service、Ingress Service Service 实现k8s内部网络调用、负载均衡4层 横向流量 endpoint是k8s集群中的一个资源对象存储在etcd中用来记录一个service对应的所有pod的访问地址 servie endpoint pod 之间的关系 Master节点维护管理了 service service通过 Endpoint 来方位其他的pod Endpoint 中 维护了pod 的地址信息通过iptables转发访问 pod 的 kube-proxy来与pod通信 管理人员通过 api-server会访问到servcie最终实现 k8s内部的网络通信 protocol: TCP 端口绑定的协议支持 TCP、UDP、SCTP默认为 TCP selector: 选中当前 service 匹配哪些 pod对哪些 pod 的东西流量进行代理 Service代理K8s 外部服务 实现方式编写 service 配置文件时不指定 selector 属性 自己创建 Endpoint Ingress **lngress 可以提供外网访问 服务 的能力。反向代理负载均衡**7层 纵向流量 外部的接口 先访问到ingress 然后访问到 service 最终访问k8s内部服务 Ingress 可以理解为 代替了 nginxingress 提供多种控制器方案 :ingress-nginx、 HAproxy 等 rules路由配置规则 可以基于 路径名、根据域名等 匹配service 配置管理 ConfigMap 创建 使用 kubectl create configmap -h 查看示例构建 configmap 对象 原理基于文件夹、文件、yaml创建将配置文件连接起来 形成KV形式 的配置 Secret 与 ConfigMap 类似用于存储配置信息但是主要用于存储敏感信息、需要加密的信息Secret 可以提供数据加密、解密功能。 默认使用编码的形式来加密 kubectl create secrte xxx SubPath 同一个pod中多容器挂载同一个卷时提供隔离将configMap和secret作为文件挂载到容器中而不覆盖挂载目录下的文件 配置热更新 更新configMap 的同时更新 pod内的配置 默认方式会更新更新周期是更新时间 缓存时间 subPath不会更新 修改configmap 通过 edit 命令直接修改 configmap 通过replace替换 –dry-run打印yaml文件 不可变的配置 对于一些敏感服务的配置文件在线上有时是不允许修改的此时在配置 configmap 时可以设置 immutable: true 来禁止修改 持久化存储 Volumes HostPath 将节点上的文件或目录挂载到 Pod 上此时该目录会变成持久化存储目录即使 Pod 被删除后重启也可以重新加载到该目录该目录下的文件不会丢失 通过创建yaml文件的形式来创建 EmptyDir 用于一个pod中不同的容器间共享数据 Pod 如果被删除了那么 emptyDir 也会被删除。 存储介质可以是任意类型如 SSD、磁盘或网络存储。 创建 通过创建yaml文件的形式来创建 NFS挂载 nfs 卷能将 NFS (网络文件系统) 挂载到你的 Pod 中。 不像 emptyDir 那样会在删除 Pod 的同时也会被删除nfs 卷的内容在删除 Pod 时会被保存卷只是被卸载。 这意味着 nfs 卷可以被预先填充数据并且这些数据可以在 Pod 之间共享。 安装 nfs yum install nfs-utils -y 启动 nfs systemctl start nfs-server 创建设置 共享目录 创建yaml配置文件 PV与PVC 更高层次的文件存储封装 持久卷PersistentVolumePV 是集群中的一块存储可以由管理员事先制备 或者使用存储类Storage Class来动态制备。 持久卷是集群资源就像节点也是集群资源一样。 持久卷申领PersistentVolumeClaimPVC 表达的是用户对存储的请求。概念上与 Pod 类似。 Pod 会耗用节点资源而 PVC 申领会耗用 PV 资源。Pod 可以请求特定数量的资源CPU 和内存 !](https://img-blog.csdnimg.cn/d66a141d28d24afbbb37c6a4b6afe324.png) PVPVC生命周期 静态构建 集群管理员创建若干 PV 卷。这些卷对象带有真实存储的细节信息 并且对集群用户可用可见 动态构建通过 设置StorageClass存储类 实现 动态构建PV 有默认的DefaultStorageClass 绑定 当用户创建一个 PVC 对象后主节点会监测新的 PVC 对象并且寻找与之匹配的 PV 卷找到 PV 卷后将二者绑定在一起。 使用pod 将 PVC 当作存储卷来使用集群会通过 PVC 找到绑定的 PV并为 Pod 挂载该卷。 回收策略 保留、删除、回收 。默认为删除 PV状态 Available空闲未被绑定 Bound已经被 PVC 绑定 ReleasedPVC 被删除资源已回收但是 PV 未被重新使用 Failed自动回收失败 StorageClass 存储类 StorageClass 可以动态制备PV 按照PVC的需求来构建合适结构的PV 管理人员可以将存储资源分类然后使用者就可根据StorageClass的描述申请合适的存储资源 制备器 每个 StorageClass 都有一个制备器Provisioner用来决定使用哪个卷插件制备 PV 高级调度污点容忍、亲和力 CronJob 在 k8s 中周期性运行计划任务与 linux 中的 crontab 相同 初始化容器 InitContainer 在真正的容器启动之前先启动 InitContainer在初始化容器中完成真实容器所需的初始化操作完成后再启动真实的容器。 InitController 实际就是一个容器可以在其他基础容器环境下执行更复杂的初始化功能 使用在 pod 创建的模板中配置 initContainers 污点和容忍 污点和容忍可以灵活的让pod避开某些节点也可以根据硬件特点使应用部署到更合适的节点 污点Taint 污点是标注在节点上的当我们在一个节点上打上污点以后k8s 会认为尽量不要将 pod 调度到该节点上除非该 pod 上面表示可以容忍该污点且一个节点可以打多个污点此时则需要 pod 容忍所有污点才会被调度该节点。 打上污点 kubectl taint node k8s-master keyvalue:NoSchedule 移除污点 kubectl taint node k8s-master keyvalue:NoSchedule- 查看污点 kubectl describe no k8s-master 容忍Toleration 容忍是标注在 pod 上的当 pod 被调度时如果没有配置容忍则该 pod 不会被调度到有污点的节点上只有该 pod 上标注了满足某个节点的所有污点则会被调度到这些节点 pod 模板的 spec 下面配置容忍 tolerations: key: “污点的 key” value: “污点的 value” offect: “NoSchedule” # 污点产生的影响 亲和力Affinity 节点亲和力NodeAffinity 进行 pod 调度时优先调度到符合条件的亲和力节点上 硬亲和力即支持必须部署在指定的节点上也支持必须不部署在指定的节点上 软亲和力尽量部署在满足条件的节点上或尽量不要部署在被匹配的节点上 Pod 亲和力PodAntiAffinity 将与指定 pod 亲和力相匹配的 pod 部署在同一节点。 硬亲和力pod必须部署在同一节点 软亲和力尽量将pod部署在同一节点 Pod 反亲和力PodAntiAffinity pod 反亲和力根据策略尽量部署或不部署到一块 硬亲和力不要将应用与之匹配的部署到一块 软亲和力尽量不要将应用部署到一块 身份认证和权限 身份认证 所有 Kubernetes 集群有两类用户由 Kubernetes 管理的Service Accounts 服务账户和 Users Accounts 普通账户 Users Accounts 普通账户 管理员等账户 普通用户无法通过api创建 Service Accounts 服务账户 Service Accounts 是针对k8s pod 内跑的服务的 用来标记服务和服务的权限 Service Account 自动化 Service Account Admission Controller Token Controller 管理 token Service Account Controller 授权RBAC 基于角色的权限 Role 代表一个角色会包含一组权限没有拒绝规则只是附加允许。它是 Namespace 级别的资源只能作用与 Namespace 之内。 查看 role kubectl get role -n ClusterRole 功能与 Role 一样区别是资源类型为集群类型 查看kubectl get clusterrole RoleBinding Role 或 ClusterRole 只是用于制定权限集合具体作用与什么对象上需要使用 RoleBinding 来进行绑定作用于 Namespace 内 查看kubectl get rolebinding --all-namespaces ClusterRoleBinding 与 RoleBinding 相同但是作用于集群之上可以绑定到该集群下的任意 User、Group 或 Service Account
http://www.hkea.cn/news/14266069/

相关文章:

  • idc网站是用什么语言做的网站建设客户好评信
  • 郑州市建设局官方网站营销技巧第三季
  • 长治招聘网站建设北京工程建设交易网
  • 甘肃网站备案在线ppt制作网站有哪些
  • 汕头自助建站系统html教程w3school
  • 什么网站做h5好朝阳网站建设公司电话
  • 做外贸的网站哪些是最好的贵阳建设网站
  • 网站推广的方式有哪几种python数据分析
  • 好的 做网站的软件公司wordpress标签背景
  • 帝国cms网站搬家教程温州市建设工程质量监督站网站
  • 潍坊网站开发家电照明电子通用网站模板
  • 2013我国中小企业接入互联网和网站建设情况网站模板套用
  • 网站关键词怎样优化万江区做网站
  • 东莞做网站公司电话巩义企业网站建设报价
  • 景德镇网站开发做卖东西的网站
  • 单县网站定制打开网页就是2345网址导航
  • 购物网站建设的目标wordpress 域名配置
  • 网站后台怎么上传表格网站的优化外包
  • 浙江做网站找项目做区域代理
  • centos启动wordpress免费下优化大师
  • 什么网站可以做期货网站设计尺寸规范
  • 网站规划与开发实训室建设方案99元的wordpress主题
  • 专业网站建设86215广东vs北京首钢
  • 网站开发页面网站模板文件下载
  • 网站推广阶段优化深圳seo
  • 外贸购物网站看一个网站的浏览量
  • 一般网站宽度怎么在网络上做推广
  • 做网站一定要买主机吗仙桃网站制作
  • 网页版微信二维码登录怎么实现济宁优化公司
  • 一般做网站企业网站运营外包费用