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

申请免费的网站济南网络销售公司

申请免费的网站,济南网络销售公司,商贸公司网站模板,辽宁市场网站建设销售文章目录 单机容器面临的问题、Kubernetes介绍与安装、Kubernetes对象的基本操作、Kubernetes YAML文件编写基础Kubernetes常用工作负载Kubernetes常用工作负载简介创建一个无状态nginx集群无状态工作负载Deployment说明无状态工作负载Deployment常见操作创建一个有状态的MySQL… 文章目录 单机容器面临的问题、Kubernetes介绍与安装、Kubernetes对象的基本操作、Kubernetes YAML文件编写基础Kubernetes常用工作负载Kubernetes常用工作负载简介创建一个无状态nginx集群无状态工作负载Deployment说明无状态工作负载Deployment常见操作创建一个有状态的MySQL有状态工作负载StatefulSet说明创建一个Zabbix客户端的进程守护集创建一个普通任务创建一个周期性任务为无状态工作负载创建一个反向代理Service的代理方式Ingress简介为Service创建一个http访问链接ConfigMap简介Secret简介Kubernetes的认证与授权Kubernetes认证机制简介授权机制RBAC简介 Kubernetes调度器简介Kube-scheduler调度过程将有GPU需求的Pod调度到特定Node上将无GPU需求的Pod尽量不要调度到特定Node上干预调度的机制简介污点和容忍亲和性与反亲和性 Helm简介Helm介绍Helm介绍Helm基本操作Chart目录结构Chart.yaml文件简介Values.yaml文件简介Templates目录简介Helm语法简介 缩略语 单机容器面临的问题、Kubernetes介绍与安装、Kubernetes对象的基本操作、Kubernetes YAML文件编写基础 看这篇文章 【hcie-cloud】【22】容器编排【k8s】【单机容器面临的问题、Kubernetes介绍与安装、Kubernetes对象的基本操作、Kubernetes YAML文件编写基础】【上】 Kubernetes常用工作负载 Kubernetes常用工作负载简介 创建一个无状态nginx集群 需求创建一个nginx集群其中包含3个nginx服务。集群中的服务随时可以进行更新、回滚、恢复等操作 无状态工作负载Deployment说明 Deployment可通过命令行创建也可以使用YAML文件创建 Deployment YAML文件包含三部分 GVK元数据信息对象规格 副本数标签选择器更新策略Pod规格信息 GVK和元数据信息和Pod YAML文件格式及参数基本一致 Deployment的标签选择器用于根据Pod标签来判断副本数是否满足 Deployment支撑两种更新策略 Recreate 删除所有的Pod然后重新创建 RollingUpdate 滚动更新 maxSurge滚动更新时最大更新数maxUnavailable滚动更新时不可用数 maxSurge滚动更新时最大更新数例如一共有3个PodmaxSurge设置为1在更新流程为新创1个----》4个-----》删除1个----》3个-----》新创1个-----》4个-----》删除1个------》3个-----》新创1个----》4个-----》删除1个----》3个 maxUnavailable滚动更新时最大不可用Pod的数量。例如一共有3个PodmaxUnavailable设置为1在更新流程为删除1个----》2个-----》新创1个-----》3个—》删除-1个----》2个-----》新创1个-----》3个—》删除-1个----》2个-----》新创1个-----》3个 如果maxSruge和maxUnavailable同时存在时更新策略选取maxSurge的值 maxSruge和maxUnavailable的值可以使用百分比表示 无状态工作负载Deployment常见操作 -修改 - 命令“kubectl edit”修改 - 直接修改YAML文件 更新 命令“kubectl apply”进行更新 回滚 更新deployment时使用“–record”记录版本使用命令“kubectl rollout history deployment/deployment名称”查询更新记录添加“–revision”可查看对应版本的信息使用命令“kubectl rollout undo deployment/deployment名称 --to-revision版本号”可将其回滚到指定版本 创建一个有状态的MySQL 需求创建一个包含3个副本的MySQL有状态工作负载 有状态工作负载StatefulSet说明 StatefulSet YAML文件包含三部分 GVK元数据信息对象规格 副本数标签选择器网络标识Pod规格信息 StatefulSet有以下特点 有序创建、有序删除、有序更新支持更新但是不支持更新策略有稳定的网络标识一般都会有由PV和PVC实现的持久化存储 创建一个Zabbix客户端的进程守护集 需求为集群中的主机安装Zabbix客户端DaemonSet说明 DaemonSet YAML文件有三部分组成 GVK元数据信息对象规格 标签选择器Pod规格信息 DaemonSet有以下特点 每个节点都会运行一个且只有一个Pod副本 创建一个普通任务 需求尝试ping 192.168.100.11测试该地址是否能够被ping通Job说明 Job YAML文件有三部分组成 GVK元数据信息对象规格 backoffLimit如果任务失败重试的次数activeDeadlineSeconds任务的存活时长 Job有以下特点 Job是一个一次性任务可以包含一个或多个PodJob YAML文件中的restartPolicy用来规定Pod如果故障执行的策略 activeDeadlineSeconds中的时间如果到了系统会忽略backoffLimit中的时长即只要activeDeadlineSeconds的存活时间到了即时backoffLimit中的次数没有到任务也会被终止restartPolicy针对的是Pod而不是Pod中的任务 创建一个周期性任务 需求将上页图片中的job设置为每天晚上3点周期性执行 Cronjob说明 Cronjob YAML文件有三部分组成 GVK元数据信息对象规格 ScheduleJobTemplate Cronjob有以下特点 Cronjob是一个周期性任务可以理解为周期性执行job对象规格中schedule规定了执行任务的周期 Schedule中的五个字段按照顺序分别是分、时、日、月、周 为无状态工作负载创建一个反向代理 需求为nginx服务创建一个反向代理服务通过该代理可以负载均衡的访问到由多个nginx组成的集群Service是一个将运行在一组 Pods上的应用程序公开为网络服务的抽象方法Service是通过kube-proxy实现的Service可以提供负载均衡的功能实现方式有两种 IptablesIpvs Service YAML文件有三部分组成 GVK信息元数据信息对象规格 此处的nginx集群可以借助前面创建的无状态工作负载标签为app: web副本数为3。 Service的代理方式 Service提供了四种代理方式 ClusterIP为工作负载提供一个虚拟IP该IP仅能被集群内部访问NodePort在ClusterIP的基础上为每一个node绑定一个端口这样可以在集群外通过 nodeIP:端口号 的形式访问到该服务。可用的端口范围为30000-32767LoadBalancer用在云计算场景中通过云计算中的ELB服务将请求转发到NodePort上ExternalName用于将外部的服务引入到集群内 ClusterIP会被coreDNS映射一个域名格式为servicename.namespace.svc.cluster.local ClusterIP可以被设置为none意味着不为该集群分配虚拟IP因此如果只采用这种方式访问业务的PoddnsPolicy需要设置为ClusterFirst ClusterIP方式中的虚拟IP和NodePort总的port可以手动指定也可以自动生成 Ingress简介 Service的NodePort代理方式有两个不足 管理复杂当服务的数量较多时所暴露端口的管理就会变的复杂影响性能NodePort后台借助iptables进行占用宿主机的资源 Ingress是一种基于Service的七层代理服务Ingress有两部分组成 ingressController流量的入口Ingress用于描述流量转发规则 要想使用ingress必须先配置SVC因为ingress不用于发现后端的Pod ip和Pod所监控的端口 ingressController能够解析ingress资源对象生成相应转发规则同时能够实时感知后端Pod的变化以更新负载均衡后端地址 为Service创建一个http访问链接 需求通过创建一个ingress对象使用户可以通过http的方式访问到前面创建的Service nginx-proxyIngress YAML由三部分组成 GVK元数据信息 -annotations固定为“kubernetes.io/ingress.class: “nginx””对象规格 host暴露的外网域名需要能够将其解析成ingress-controller地址http使用的协议service被代理的service信息paths访问路径可以使用不同的路径对应不同的服务pathType路径的匹配模式 PrefixExact -ImplementationSpecific 图片中service使用的是前面创建的servicepathType有三种方式 Prefix基于以 / 分隔的 URL 路径前缀匹配Exact精确匹配 URL 路径且区分大小写ImplementationSpecific对于这种路径类型匹配方法取决于 IngressClass。 具体实现可以将其作为单独的 pathType 处理或者与 Prefix 或 Exact 类型作相同处理 ConfigMap简介 需求在某应用开发时需要对接MySQL用户名为user1密码为Huawei123为了避免密码直接在YAML文件中体现而导致泄露因此需要将该应用的YAML文件和密码相关的配置分开存放ConfigMap是一种用于存储应用所需配置信息的资源类型用于保存配置数据的键值对可以用来保存单个属性也可以用来保存配置文件通过ConfigMap可以方便的做到配置解耦使得不同环境有不同的配置ConfigMap最为常见的使用方式就是在环境变量和Volume中引用 Secret简介 需求接上页密码以明文的方式放在configMap中仍然存在泄露的风险因此kubernetes提供了一种用于保存敏感信息的方式——SecretSecret是一种加密存储的资源对象可以将认证信息、证书、私钥等保存在Secret中而不需要把这些敏感数据暴露到镜像或者Pod定义中从而更加安全和灵活Secret与ConfigMap非常像都是key-value键值对形式使用方式也相同不同的是Secret会加密存储所以适用于存储敏感信息。 Kubernetes的认证与授权 需求为某部门创建名称为“business”的命名空间保证该命名空间中的Pod仅能被用户yftyxa使用需求中的“对命名空间Pod的使用”可以细化为具体的权限在kubernetes中使用Role进行定义需求中的用户为被赋权者可以看做被作用的对象在kubernetes中使用Subject进行定义在kubernetes中将Role的权限赋给Subject使用RoleBinding完成 Kubernetes认证机制简介 Kubernetes中的用户分为两种 普通用户User 普通用户一般是指由独立于Kubernetes之外的其它服务管理的用户账号Kubernetes中不存在表示此类用户账号的对象作用于系统全局名称必须全局唯一服务账户ServiceAccount 服务账户为Pod中的进程调用Kubernetes API设计通常需要绑定于特定的名称空间作用仅局限在他们所在的Namespace他们由API Server创建或者通过API调用手动创建附带着一组存储为Secret的用于访问API Server的凭据 Kubernetes支持多种认证方式例如 LS双向认证静态令牌文件启动引导令牌服务账号令牌OpenID ConnectOIDC令牌Webhook 令牌身份认证身份认证代理 授权机制RBAC简介 RBAC全称Role-Based Access Control是Kubernetes集群基于角色的访问控制实现授权决策允许通过Kubernetes API动态配置策略RBAC中的重要概念 Role一组权限的集合例如Role可以包含列出Pod权限及列出Deployment权限Role用于给某个NameSpace中的资源进行鉴权ClusterRole一组权限的集合但与Role不同的是ClusterRole可以在包括所有NameSpace和集群级别的资源或非资源类型进行鉴权Subject被授权的对象包括Service Account、User Account、GroupsRoleBinding与ClusterRoleBindin将Subject绑定到Role或ClusterRole。RoleBinding将使规则在命名空间内生效而ClusterRoleBinding将使规则在集群中的所有命名空间中生效 Kubernetes调度器简介 Kube-scheduler调度过程 节点过滤Predicate 用于排除不满足条件的节点人为设置的调度策略在此阶段生效 节点打分Priority 对满足条件的节点进行打分 打分完成后调度器会将Pod调度到分数最高的节点上。如果最高分的Node有多个调度器会将Pod调度到随机的其中一台Node上 将有GPU需求的Pod调度到特定Node上 需求某公司有图像处理业务承载这些业务的Pod在进行计算时需要使用node节点上的GPU因此需将Pod固定到指定的Node节点上 实施说明为node添加固定标签例如针对以上需求可以为其添加“GPU”的标签具体命令格式为 kubectl label node 节点名称 keyvalue 在对应的YAML文件中添加“nodeSelector” [rootk8s01 ~]# kubectl label node k8s02 typeGPU node/k8s02 labeled [rootk8s01 yaml]# cat nginx.yaml apiVersion: v1 kind: Pod metadata:namespace: test ……..nodeSelector:type: GPU [rootk8s01 yaml]# kubectl describe pod nodelabel -n test …… Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 17s default-scheduler Successfully assigned test/nodelabel to k8s02将无GPU需求的Pod尽量不要调度到特定Node上 需求接上页该公司的其他非图像处理需使用非GPU Node当此业务偶尔需求量较大时也可将其调度到GPU节点上实施说明 为node添加污点taint并对该污点设置指定类型PreferNoSchedule例如针对以上需求可以为其添加“GPU”的污点在对应的YAML文件中添加对污点相关的容忍度 [rootk8s01 ~]# kubectl taint nodes k8s02 typeGPU:PreferNoSchedule node/k8s02 tainted [rootk8s01 yaml]# cat deploy-taint.yaml apiVersion: apps/v1 kind: Deployment metadata:namespace: test ……..tolerations:- key: typeeffect: PreferNoSchedule“ [rootk8s01 yaml]# kubectl get pod -n test -o wide NAME READY STATUS RESTARTS AGE IP NODE nodelabel3-868b59d4b5-ghsdj 1/1 Running 0 2m8s 10.244.235.137 k8s03 nodelabel3-868b59d4b5-v5mkd 1/1 Running 0 2m8s 10.244.236.176 k8s02 nodelabel3-868b59d4b5-wjmkx 1/1 Running 0 2m8s 10.244.235.136 k8s03干预调度的机制简介 污点和容忍 干预调度有多种方式推荐使用标签选择器及污点和容忍标签选择器 即为指定的Node添加特定标签使匹配标签的Pod可以调度到指定节点如果为Node添加了多个标签必须全部匹配才能将Pod调度到该节点上 污点和容忍 Taint污点 为Node添加污点后默认情况下Pod不会被调度至该节点上如果没有合适的节点Pod会pending一个节点可以被打上多个污点标签污点类型分为preferNoSchedule 尽可能的不调度到该节点上NoSchedule 新创建的Pod不调度到该节点已经运行在上面的Pod不会受影响NoExecute 完全不调度到该节点 Tolerations容忍 一个Pod能都容忍节点上的污点时表示其将该节点视为没有污点如果一个Node有多个污点Pod需要容忍其全部后才能和其他节点一样 亲和性与反亲和性 干预调度的方式除了标签选择器及污点和容忍还包括 亲和性与反亲和性 requiredDuringSchedulingIgnoredDuringExecution 表示必须满足标签匹配才会将Pod调度在该节点 preferredDuringSchedulingIgnoredDuringExecution 表示优先将Pod调度到标签匹配的节点如果不匹配也是可以进行调度 指定节点名称 调度Pod时将Node的名称作为匹配条件 亲和性和反亲和性需要配合operator进行例如如果operator的值为In表示亲和性如果是NotIn则表示反亲和性 Helm简介 Helm介绍 Kubernetes在部署有多个服务组成的应用时有以下问题 无法对所涉服务进行整体管理无法对所涉服务脚本进行有效复用无法对应用进行版本管理 Helm是kubernetes的包管理工具是查找、分享和使用软件构建kubernetes的最优方式Helm有以下功能 从头开始创建新的chart将chart打包成归档tgz文件与存储chart的仓库进行交互在现有的Kubernetes集群中安装和卸载chart管理与Helm一起安装的chart的发布周期 Helm介绍 Helm有以下基本概念 Chart 创建Kubernetes应用程序所必需的一组信息 Config Config 包含了可以合并到打包的chart中的配置信息用于创建一个可发布的对象 Release Release是chart的部署实例一个chart在一个Kubernetes集群上可以有多个release Helm包含以下组件 Helm客户端Helm库 Helm客户端 是终端用户的命令行客户端。负责以下内容 本地chart开发管理仓库管理发布与Helm库建立接口 发送安装的chart发送升级或卸载现有发布的请求 Helm库 提供执行所有Helm操作的逻辑。与Kubernetes API服务交互并提供以下功能 结合chart和配置来构建版本将chart安装到Kubernetes中并提供后续发布对象与Kubernetes交互升级和卸载chart Helm基本操作 配置repo 添加helm源helm repo add 名称 helm库链接查看helm源helm repo list搜索charthelm search 名称 操控chart 创建charthelm create 名称安装charthelm install 名称 release下载并解压chart helm pull 名称推送charthelm push 名称升级charthelp upgrade 选项回滚charthelp rollback release卸载chart helm uninstall 名称 Helm v2和Helm v3有很大的区别以上列出的为v3版本的命令 Chart目录结构 使用命令helm create用于创建一个chart系统会自动创建固定结构的目录 [rootk8s01 mytest]# tree mytest mytest ####chart包目录名 ├── charts ####应用运行的依赖存放目录 ├── Chart.yaml ####chart定义文件包含chart的名称版本等信息 ├── templates ####应用模板目录 │ ├── deployment.yaml │ ├── _helpers.tpl ####存放模板信息 │ ├── hpa.yaml │ ├── ingress.yaml │ ├── NOTES.txt ####存放提示信息 │ ├── serviceaccount.yaml │ ├── service.yaml │ └── tests ####用于测试 │ └── test-connection.yaml └── values.yaml ####chart包的参数配置文件在模板文件中会调用定义的变量Chart.yaml文件简介 Chart.yaml 中主要是放一些概要信息比如 chart 的名称、版本、维护者、依赖即子 chart apiVersion: v1 appVersion: 5.7.30 deprecated: true description: DEPRECATED - Fast, reliable, scalable, and easy to use open-source relationaldatabase system. home: https://www.mysql.com/ icon: https://www.mysql.com/common/logos/logo-mysql-170x115.png keywords: - mysql - database - sql name: mysql sources: - https://github.com/kubernetes/charts - https://github.com/docker-library/mysql version: 1.6.9上面内容来自http://mirror.azure.cn/kubernetes/charts/mysql/Chart.yaml appVersionchart的版本Deprecated表示当前chart已弃用keywords 关键字列表便于检索Namechart名称Source下载列表Versionrelease版本 Values.yaml文件简介 在values.yaml文件中定义的值通过 Values 对象传递到templates下的YAML模板清单中使用{{ .Values.key }}格式来引用values.yaml中定义好的参数 Templates目录简介 各类Kubernetes资源的配置模板都放置在templates目录下 [rootk8s01 helm]# ll mysql/templates/ total 48 -rw-r--r-- 1 root root 292 Nov 13 2020 configurationFiles-configmap.yaml -rw-r--r-- 1 root root 8930 Nov 13 2020 deployment.yaml -rw-r--r-- 1 root root 1290 Nov 13 2020 _helpers.tpl -rw-r--r-- 1 root root 295 Nov 13 2020 initializationFiles-configmap.yaml -rw-r--r-- 1 root root 2036 Nov 13 2020 NOTES.txt -rw-r--r-- 1 root root 868 Nov 13 2020 pvc.yaml -rw-r--r-- 1 root root 1475 Nov 13 2020 secrets.yaml -rw-r--r-- 1 root root 328 Nov 13 2020 serviceaccount.yaml -rw-r--r-- 1 root root 800 Nov 13 2020 servicemonitor.yaml -rw-r--r-- 1 root root 1231 Nov 13 2020 svc.yaml drwxr-xr-x 2 root root 50 May 9 05:24 testsHelm语法简介 helm在全局作用域中有两个重要的全局对象 Valuesrelease Value传入chart的值有四个来源 chart中的values.yaml文件若这是个子chart来自父chart的values.yaml文件执行 install 或 upgrade 时通过 -f或–values 指定执行 install 或 upgrade 时通过 --set 选项传入 Release代表应用发布时带有的属性 {{ .Release.Name }} # release的名字{{ .Release.Time }} # release部署时间{{ .Release.Namespace }} # kubernetes命名空间{{ .Release.Revision }} # release版本号是递增值每次更新都加一{{ .Release.IsUpgrade }} # 若值为true则代表该release是一次更新{{ .Release.IsInstall }} # 若值为true则代表该release是一次安装 缩略语 缩略语英文全称解释APIApplication Programming Interface应用编程接口指的是应用程序之间为了保证互相通讯所提供的一系列特殊规则和要求K8sKubernetesKubernetes的缩写CLICommand-line Interface命令行视图LBLoad Balance负载均衡AIArtificial Intelligence人工智能OAOffice Automation办公自动化OTTOver The Top通过互联网向用户提供各种应用服务CSIContainer Storage Interface容器存储接口CCECloud Container Engine华为云容器引擎HCSHUAWEI CLOUD Stack华为云解决方案名称
http://www.zqtcl.cn/news/258401/

相关文章:

  • 临近做网站网络营销方式哪些?
  • 网站数据分析案例怎样在网上做广告
  • 网站页头图片怎么做几个版面的网站
  • 网站 f型网站建设 大公司
  • 做网站最好选什么语言百度域名服务器
  • 网站维护一般多久西宁的网站建设
  • 网站建设需要什么工具投诉百度最有效的电话
  • 做家政网站公司策划公司英文
  • 自己建设个人网站要花费多少自己怎么制作微信网页链接
  • 邢台网站设计哪家专业php图书管理系统网站开发
  • 怎么去建一个网站艺术设计专业
  • 中国优秀设计网站有哪些内容万能影视免费观看app
  • 网站做响应式还是移动端广告创意设计模板
  • 企业网站建设的要求标准营销型网站定做价格
  • 兰溪优秀高端网站设计郑州正规网站制作公司
  • 霸气业务网站源码网站建设运营服务公司
  • 做seo对网站推广有什么作用网站开发程序流程图
  • 旅游网站怎么建设网站开发+搜索
  • 三分钟做网站传统企业建设营销型网站
  • 必须在当地网站备案化妆品做备案的网站
  • 网站建设7个主要流程图创建全国文明城市工作要求
  • 张店网站开发招聘怎样做网站变手机软件
  • 聊城做网站的公司流程网页设计网站模板
  • 宿迁网站建设哪家专业做网站宁夏
  • 静态网站规范贵州城乡建设厅施工员报名网站
  • 湖北长安建设集团股份有限公司网站wordpress主题套用
  • 本地门户网站系统小米应用商店
  • 网站建设怎么用宁波建设网网点
  • 购物网站二级页面模板国家企业信用公示信息系统官网app
  • tp框架做餐饮网站快速建站教程网