一、应用资源优化 资源优化是FinOps中常见的优化手段,基于Kubernetes应用的特点总结出云原生应用的资源优化模型: 图中五条线从上到下分别是: 节点容量:集群中所有节点的资源总量,对应集群的Capacity 已分配:应用申请的资源总量,对应PodRequest 周峰值:应用在过去一段时间内资源用量的峰值。周峰值可以预测未来一段时间内的资源使用,通过周峰值配置资源规格的安全性较高,普适性更强 日均峰值:应用在近一天内资源用量的峰值 均值:应用的平均资源用量,对应Usage 其中资源的闲置分两类: ResourceSlack:Capacity和Request之间的差值 Usage...

  zNxK8cIqmu7p   2023年12月12日   13   0   0 crane

背景 由于MySQL数据库是自建在K8s上的,现在有三个痛点。 数据库扩容影响全部访问数据库的功能模块。 数据库维护需要运维人力,例如数据库定时备份方案,高可用。 后续又引入双云灾备的需求,双云数据库的同步又是一个问题。所以急需将数据库迁移到云商,通过数据传输方案进行数据同步。 流程 把本地切换到云商 整理所有mysql数据库连接 mysql数据库修改配置,支持binlog 数据同步 修改配置文件数据库相关配置,完成切换 云商数据迁移云商 新建数据全量+实时迁移任务 新建切换前数据全量迁移任务(注意事项:订单库不迁移,冷备切换时迁移) 切换验证 1验证可行性 首先在测试环...

  zNxK8cIqmu7p   2023年12月02日   17   0   0 数据库mysql

在运行容器的时候,有一个重要的需求就是应用的配置管理、敏感信息的存储和使用(如:密码、Token等)、容器运行资源的配置、安全管控、身份认证等等。 对于应用的可变配置在Kubernetes中是通过一个 ConfigMap 资源对象来实现的,如果涉及到一些安全相关的数据的话用ConfigMap就非常不妥了,因为ConfigMap是明文存储的,这个时候我们就需要用到另外一个资源对象了:Secret,Secret用来保存敏感信息,例如密码、OAuth令牌和sshkey等等,将这些信息放在 Secret 中比放在Pod的定义中或者Docker镜像中要更加安全和灵...

  zNxK8cIqmu7p   2023年11月28日   18   0   0 comfigmapSecret

实际环境 在工作中,有多个k8s集群需要同时管理,随着业务的扩充,先运行的K8s的版本和新运行的K8s版本就有出现差异,有些资源清单的apiVersion、格式、写法就会出现不兼容的情况。 实际情况是在部署CronJob的资源时,部署失败。差异: A集群版本为v1.17.4 B集群版本为v1.26.1 在Kubernetes中,CronJob的API版本变更是从Kubernetes1.21版本开始引入的。在Kubernetes1.21版本之前,batch/v1beta1是CronJob的稳定版本。从Kubernetes1.21版本开始,CronJob被升级为稳定版本,使用的是batch/v...

  zNxK8cIqmu7p   2023年11月22日   15   0   0 helm

实际环境 在工作中,有多个k8s集群需要同时管理,随着业务的扩充,先运行的K8s的版本和新运行的K8s版本就有出现差异,有些资源清单的apiVersion、格式、写法就会出现不兼容的情况。 Ingress在Kubernetes中的API版本变更是从Kubernetes1.19版本开始的。在Kubernetes1.19版本之前,Ingress使用的是扩展API组(extensions/v1beta1)。从Kubernetes1.19版本开始,Ingress被升级为稳定版本,并使用networking.k8s.io/v1API组。 因此,如果你的Kubernetes版本是1.19或更高,应该使...

  zNxK8cIqmu7p   2023年11月22日   21   0   0 不同版本API字段

集群物理结构 从角色角度K8s集群分为: master:所有请求的入口。 node:所有应用的载体。 部署方式: 单Master节点:一个Master节点的K8s集群,不适用于生产环境。 多Master节点:多个Master节点的K8s集群,具有高可用性。 Pod创建时各个组件的功能 当一个客户想要创建一个nginx的时候,各组件的请求流程。 客户端会发出一个请求,会请求到kube-apiserver,  kube-apiserver会将数据存到ETCD中,ETCD只有kube-apiserver访问。 kube-scheduler监听kube-apiserv...

  zNxK8cIqmu7p   2023年11月19日   17   0   0 ServerAPIPod

AppleiPhone13ProMax更换遥遥领先Mate60Pro已经一个月了。之前扫描点餐加载不出来的情况都没有出现过了。原来不卡是这种感觉,他真的,我哭死。 手机操作界面太小了,不太方便。以后使用安卓平板的话就比较方便。记录在此,方便查询。 安装 Termux是运行在Android上的terminal。不需要root,运行于内部存储(不在SD卡上)。 随之也有移动设备办公的需求。目前的工作场景主要是飞书沟通+连接k8s进行操作。 找到了Termux。可以正常安装Termuxv0.118.0版本。 更换镜像源 https://mirrors.tuna.tsinghua.edu.cn/...

  zNxK8cIqmu7p   2023年11月19日   24   0   0 shell遥遥领先移动设备终端

1准备AmazonIAM用户 登陆AWSAmszon:https://aws.amazon.com/ 创建IAM用户 填写用户名 添加现有策略,使用管理员权限。 创建密钥 选择aws外部的应用程序 保存密钥信息 配置IAM用户认证 安装awscli brewinstallawscil 配置 $awsconfigure AWSAccessKeyID[None]:AJ AWSSecretAccessKey[None]: Defaultregionname[None]:us-west-2 Defaultoutputformat[None]: 2创建Terra...

  zNxK8cIqmu7p   2023年11月13日   35   0   0 IaCterraform

背景 需要在公司的平台上面,批量给用户注册,并激活账号信息。 主要是通过console接口进行激活和注册,所以要使用到Go语言的http库,在此记录。 步骤分解 console页面注册获取注册和激活接口需要的信息。 通过postman验证接口。 关闭服务IP注册限制(公司代码相关)。 通过代码进行注册激活。 恢复服务IP注册限制(公司代码相关)。 1获取注册和激活接口信息 注册接口post请求。主要传递用户名和密码 激活接口put请求。 点击恢复按钮,对用户进行激活。 2postman进行验证 注册接口验证 激活接口验证 3关闭注册限制(略) 于...

  zNxK8cIqmu7p   2023年11月13日   16   0   0 GoHTTPgolang

模块重用资源介绍 Terraform模块可以简化代码,减少代码重复的内容。使用Terraform模块可以重用基础设施资源。 在Terraform本身看来模块只不过是一个或多个资源的容器。通过Terraform的模块机制,对想要重用的资源进行封装,即可在别处像函数一样方便的调用。 模块代码结构 通过调用modules目录下的模块进行重用资源。 %treemodules modules |-base-server //基础服务器的模块 ||-main.tf //模块中用来管理一个或多个基础设施资源 ||-outputs.tf //模块的输出,相当于通用编程语言中的返回...

  zNxK8cIqmu7p   2023年11月13日   20   0   0 modulesterraform

Terraform状态文件 在默认情况下,Terraform将状态文件terraform.tfstate存储在本地。 如果一个人使用Terraform的话是可以的,如果是团队维护的话,就不太合适了。因为团队中的每一个成员都有可能执行Terraform,所以每个人都有可能产生自己的状态文件。如何能够同步状态文件,并且让它们能够保持一致,将成为团队成员维护的额外负担。 Terraform通过支持远程状态从而解决团队成员协作的使用Terraform的状态文件的问题。 Terraform远端状态 Terraform远端状态以及将Terraform所产生的基础设施资源的状态数据写入到远端的存储中,T...

只要经过测试的基础设施代码,创建的基础设施才是可靠的。 虽然可以通过执行Terraformapply的命令直接测试,但是这种方式效率太低。所以需要使用自动化测试基础设施。 Terratest介绍 使用Terratest作为Terraform的代码测试工具。Terratest是为基础设施代码作为自动化测试的Go程序库,具有简单易用的特点,使用TerraTest我们不仅能够测试Terraform代码,packer模版,Docker镜像,AWS等。 在使用TerraTest之前,要保证所用的操作系统中,包含Go,dep。 安装依赖godep 去Go的官网进行下载安装,dep是golang的依赖管...

  zNxK8cIqmu7p   2023年11月13日   47   0   0 terraform

实现循环(for) Terraform中本身并不支持循环的语句,但是可以通过其他形式来实现循环的效果。 每一个资源块除了他所支持的特定参数外,Terraform也具有一种被称为mtacmt元参数的参数。所谓元参数就是这种参数能够引用到任意的资源块中,从而达到更改资源原有行为的目的。provisioner就是元参数。 利用count元参数实现循环 默认情况下Terraform的资源块只允许创建一个基础设施资源对象,不过使用count元参数,我们可以让terraform一次性创建多个基础设施资源对象,对于创建服务器集群的应用场景,在count元参数的帮助下,就方便多了。 使用count元参数实...

  zNxK8cIqmu7p   2023年11月13日   41   0   0 terraform

对于某些关键的服务而言,更新和升级时,通常会采用不宕机的部署方式。 在变更的过程中不停机,这种部署方式可以将风险降到最低,使用户得到无感知的升级体验。然而在默认情况下,Terraform按照先销毁后创建的执行顺序部署,很难使服务不受到影响,可以通过控制Terraform执行的顺序在销毁之前先执行创建。可以实现不宕机的目的。 生命周期控制 通过对lifecycle可以对资源的生命周期进行控制,从而改变terraform的默认行为。 lifecycle{ create_before_destroy=true } create_before_destroy=true 表示先启动要替...

  zNxK8cIqmu7p   2023年11月13日   15   0   0 terraform

遵循标准或一致的编码风格是团队成员相互协作的关键,良好的编码风格具有更佳的可读性,使团队协作更加顺畅。   Terraform提供专门的命令格式化代码,从而使编码风格保持一致。 fmt选项 格式化混乱的Terraform代码,只需在当前目录下执行terraformfmt命令即可。terraformfmt--diff=true可以显示被格式化的具体代码。 Terraform在格式化main.tf原文件后保存,随即列出该文件相应的变化。 想要格式化terraform子目录下的代码,可以使用递归选项 terraformfmt-recursive。 实践 默认只会列出...

  zNxK8cIqmu7p   2023年11月13日   11   0   0 terraform

对于喜欢交互式操作的用户而言,terraform提供了一个console控制台,在控制台中,我们不仅可以对Terraform的表达式进行求值,而且可以试验各种内置函数。 terraform的控制台适合在正式使用之前进行测试的场景。在命令行中执行terraformconsole命令即可打开terraform控制台。 Terraformconsole使用 符号>是terraformconsole的提示符。在后面可以输入表达式。 %terraformconsole Acquiringstatelock.Thismaytakeafewmoments... > 表达式使用 &gt...

  zNxK8cIqmu7p   2023年11月13日   15   0   0 terraform

Terraform准备篇 什么是Terraform? 安装Terraform Terraform入门篇 Terraform创建第一个云基础设施 Terraform变量的使用 Terraform使用模版文件 Terraform依赖关系可视化Graphviz Terraform提高篇 Terraform通过Provisioner配置服务器 Terraform模块重用资源 Terraform团队协作以及状态文件 Terraform测试基础设施代码 Terraform技巧篇 Terraform实现循环for和条件判断if Terraform零宕机部署 Terraform格式化并验证Terrafo...

  zNxK8cIqmu7p   2023年11月13日   18   0   0 terraform

背景 在使用Terraform创建TencentCloudTKE的时候,手贱把nodepool删掉了。导致执行destroy,plan都会报错。 │Error:[TencentCloudSDKError]Code=InternalError.UnexpectedInternal,Message=relatednodepoolqueryerr(getnodepoolfailed:[E501001DBRecordNotFound]recordnotfound),RequestId=96199180-e9de-4d8b-9960-f6e4afecb517 │ 解决方法 尝试同步状态 执行t...

  zNxK8cIqmu7p   2023年11月13日   17   0   0 terraform

相对于一步一步安装配置Prometheus,还有更简单方式来监控报警,那就是PrometheusOperator。PrometheusOperator为监控Kubernetes资源和Prometheus实例的管理提供了简单的定义,简化在Kubernetes上部署、管理和运行Prometheus和Alertmanager集群。 PrometheusOperator为Kubernetes提供了对Prometheus机器相关监控组件的本地部署和管理方案,该项目的目的是为了简化和自动化基于Prometheus的监控栈配置,主要包括以下几个功能: Kubernetes自定义资源:使用Kubern...

  zNxK8cIqmu7p   2023年11月02日   20   0   0 Prometheus

1.创建对象存储 创建对象存储 这里以ucloud托管s3环境为例,其他公有云和自建s3同理。 地域:与集群同一地域。 存储空间:xxxxx-prometheus-thanos-ucloud-huabei 格式:<公司名>-<服务名>-<集群名> 这里公司名和服务名是固定的,只需要更新集群名即可。 创建令牌 不同地区令牌名字可以重复prometheus-thanos。 创建令牌之后,获取 公钥:TOKEN_7baab610-b900-xxxx 私钥:5c100495-47f2-xxxx 保存s3存储信息 创建对象存储对应的文件,用于...

  zNxK8cIqmu7p   2023年11月02日   30   0   0 Prometheusthanos
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~