最近一个客户需要在Azure上面配置服务,同时要求能够实现ratelimit的功能。看了一圈,发现只有Azure的Frontdoor的WAF上可以有这个功能。豆子习惯了AWS的各种服务,使用Azure的时候,总喜欢横向对比一下。简单的说,Azure里面有好几个和负载平衡相关的服务,我的理解是Azurefrontdoor=AWSglobalaccelerator+cloudfrontCDNAzure
今天需要做个简单的PoC,在不改变服务器源代码的前提下,通过ALB和Cognico做验证服务。首先搭建个基本的ACM+ALB+ASG,这个就不多说了,ACM生成证书,配置ALB,ALB后面跟了个ASG的webserver,里面起了个简单的apache服务器,随便写了个index.html总之效果就是下面这样!image.png(https://s2.51cto.com/images/202210/
背景最近同事需要给一个PowerBIGateway配置防火墙以便访问一个RDS实例。然后问题出现了,RDSendpoint的域名倒是不会变,但是他对应的IP地址是动态的,而防火墙规则只能使用IP地址而不能使用域名。解决方法是配置一个EC2实例,EC2可以有一个静态的IP,然后把这个EC2当成一个软路由转发数据库的请求到RDS上。下面看看具体如何实现的。配置主要参考资料来自于AWS的这篇博客http
背景最近一个项目需要在GitlabCI里面做Linting。传统的方式是需要扫描什么内容就用对应的linting工具,然后发现github上面有个小项目叫superlinter,就是把常用的工具都打包装好了,用这么一个工具就可以扫描各种语言了。这个工具本来是给githubaction量身定做的,但是第三方的CI/CD也是可以用的。下面看看如何在gitlab里面使用。官网链接在这里https://g
最近把一个旧的服务需要迁移到EKS上。这个服务是用于给AD的用户自己重设密码用的。之前是部署在AWS的EC2上,现在需要容器化然后部署在EKS上。简单的记录一下过程官方的文档在这里https://selfservicepassword.readthedocs.io/en/latest/installation.html几个注意要点:1.安装的时候需要注意的一点就是,他是通过ldaps的方式绑定AD
简单记录一下ConfigMap使用的一个小坑。最近演示项目,需要用ArgoCD部署一个demo的app,app需要从一个.net的pod连接另外一个postgres的pod。下面是相关的manifest文件首先是dotnet的配置文件dotnetconfigmap.ymlapiVersion:v1kind:ConfigMapmetadata:name:templateserviceappsetti
概述最近一个Azure的项目需要先做一系列ProofofConcept(PoC)可行性的演示。下面简单的记录一下做过的准备。1.首先是通过Gitlab和Terraform来搭建一个Azure的服务器的环境https://blog.51cto.com/beanxyz/55474692.通过Gitlab来创建容器,并能上传到AzureContainerRegistry里面https://blog.51
平常我们在pipeline里面执行dockerbuild的操作的时候,一般是下面的步骤,登录registry,根据dockerfile生成镜像,给镜像打标签,然后推送到registry里面。dockerlogindockerbuilddockertagdockerpush这种操作很常见。如果我们的CI工具本身是一个容器,我们会遇到dockerindocker的问题。解决这种dind的一种做法是在挂
概述最近升级GKE和EKS的K8S集群,感觉在K8S托管服务这一块,Google和AWS做的差距也太大了。Google的GKE界面做的很好,基本可以替代dashboard了,然后他的升级做的非常简单,管理员点击几个按钮,然后一切搞定;而AWS的EKS,管理界面及其简单,那个升级按钮只能升级controlplane,剩下的workernode和上面的各种服务组件管理员都得看着升级匹配表格手动升级,这
概述在AWS上安装k8s有很多方式,比如可以用传统的kubeadmin安装,缺点是整个VPC和EC2的环境都得自己先搭建出来;也可以考虑用eksctl安装,优点是快捷省事,而且整个AWS的架构都可以一起安装了,masternode节点完全托管给AWS;还有一种比较常用的方式就是kops安装。kops和eksctl类似,安装可以连vpc和ec2autoscaling等架构一起安装,但是所有的mast
有的时候需要在prometheus里面输出一些自定义的metrics。实现很容易,把这些自定义的值保存在一个prom文件里面,然后让nodeexporter加载这个文件就可以了。下面看一个简单的例子。我有一个DHCPKea服务器,已经配置了API的功能。比如说,我发送一个curl的请求,可以获得一个JSON的返回值,通过jq我可以获取一些子网的信息。ubuntu@fortinetdhcpbours
这两天有个新的需求,需要在Gitlab里面配置两个子目录来存放不同的angularjs和.net的代码,然后各自生成对应的dockerimage。基本结构是这样的,最外面有个.gitlabci.yml文件,他同级的有两个目录。在这个外面的.gitlabci.yml里面循环调用子目录里面的.gitlabci.yml,实现二级目录的pipeline。.gitlabci.ymlangularjs_pro
Gitlab和Terraform都是很流行的DevOps工具,下面简单的记录一下如果使用他们在Azure上部署一个服务。在这个例子里面,Gitlab是作为我们的GitRepo,同时也是作为CICDPipeline来使用的。准备工作首先是准备工作,我们需要配置一个ServicePrincipal可以允许从第三方的程序访问Azure,我们还需要配置一个StorageAccount来保存我们的Terra
简单的记录一下最近完成的一个任务。AWSSES服务可以允许开发人员在软件中发送批量的邮件通知。具体怎么配置的,这里就不赘述了,这里主要记录一下他的监控和告警的配置和实现。SES批量发送邮件很容易被对方的邮件判断成垃圾邮件,因此他有Metrics里面两个指标,一个是bouncerate,一个是complaintrate。前者是接收方的邮箱不存在或者无法发送导致反弹回来,后者是对方认为SES是垃圾邮件
豆子最近开始看EKS的使用。EKS是AWS托管的k8s服务,使用起来和baremetal的k8s还是有些区别的。下面是一个简单的学习测试,看看如何在AWS上面使用他自己的ALBIngressController。在裸机的k8s上面,我们一般是通过NginxIngressController来进行第7层的负载均衡。AWS上面我们当然也可以这么做,然后再通过一个第四层的NLBservice来访问Ngi
这段时间在看韩先超老师的k8s课程,并成功地通过了CKA的考试。把之前的一些重要的笔记整理一下。k8s里面service和ingress是两个很重要的概念。下面简单的总结一下,并配置一个实验环境。service的主要作用是把集群内部的容器的端口暴露出来,以便集群内部的其他服务或者集群外部来访问。service分成了三大类型,分别是NodePort,ClusterIP和Loadbalance。Clu
个人感受
Prometheus默认是使用pull 模式,也就是每隔一段时间,prometheus去主动获取Metric信息。这种方式有个问题就是有些批处理的脚本他们的结果可能存在时间很短,如果错过了就没法收集metric了,这种时候,我们可以使用pushgateway,把这些metric都push给这个pushgateway,然后稍后让Prometheus来pushgateway这里来取数据。 下面看看如
工作需要安装一个新的DHCP服务器给Fortigate 提供IP,要求使用kea这个开源软件。上线之前,先在本地模拟一下,简单的记录一下配置安装的过程 ## 安装 他可以通过现成的包来安装,也可以通过source手动安装。官方的教程是通过source来安装,我也这么做。 下载解压kea,注意下载最新版本,官方文档很久没更新了,导致了一个大坑,他的的例子是一个旧版本的型号,这个例子的版本号有b
登陆grafana的服务器 安装下面的包 ``` sudo apt-get install -y apt-transport-https software-properties-common wget ``` 添加gpg key ``` wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - ``` 添加re
Prometheus 除了监控服务器节点,还可以对application和容器进行监控。下面看看4个例子,监控apache,监控 docker daemon,监控docker container和 监控 kubenetes ## 例1 监控Apache 相关服务 和监控Linux 节点类似,我们也需要安装对应的exporter 登陆进apache 服务器,创建新用户,下载exporter,解压,
Prometheus是一个很强大的监控工具,尤其适合于基于时间流的各种metric的日志,可以用来监控Linux,Windows节点,各种应用程序,比如apache,docker,kubernetes等容器编排工具等等。 他的安装和配置相对来说还是比较直观容易的。下面看一个简单的例子,安装一个Prometheus服务器,并且监控一个Linux的节点服务器性能 安装Prometheus
Sonarqube是一个开源的代码质量检测工具,可以单独使用,也可以作为一个检测步骤放在Jenkins的pipelineCI/CD流水线。简单的理解,他通过一个snarqubescanner的工具来扫描代码,然后把结果发给sonarqubeserver,用户可以在这个sonarqubeserver的网页界面查看报告。每次运行的时候,他会通过一系列条件检测,我们可以看见这些检测的内容,这些检测的内容
最近在学习ECS和Terraform,于是用Terraform配置了一个基本的ECSCluster,Cluster里面有2个EC2,上面跑了4个Nginx的容器。整个配置的流程用resource完成,并未使用Module,思路和用AWSConsole手动创建的过程一一匹配。https://github.com/beanxyz/ecs执行terraformapply的效果基本流程:配置基本的VPC网
之前豆子在公司配置了SnipeIT的容器。Docker的配置命令很简单配置Mysql数据库dockerrun\--namesnipe-mysql\-d\-eMYSQL_ROOT_PASSWORD="Ylh16888test"\-eMYSQL_DATABASE=snipe\-eMYSQL_USER=snipe\-eMYSQL_PASSWORD="Ylh16888test"\-eTZ=America/
Docker的网络可以分为Bridge,Host,Overlay,None和Macvlan。其中,默认的类型为Bridge类型。下面来看看几个常见的命令和配置。和虚拟机,宿主机的网络关系类似,容器的宿主上也可以有不同的网络。相同的网络上的容器可以互相通信。例1创建一个Bridge的网络,指定subnet和gatewaydockernetworkcreate--subnet10.1.0.0/24--
今天写了个Terraform的小练习,内容很简单,通过resources创建一个VPC,公网上是跳板机,私网上是内部服务器,配置好之后可以通过跳板机访问内网服务器。写好的内容在这。https://github.com/beanxyz/task1这个内容比较基础,就不赘述。这个过程中遇见了两个比较有趣的问题,记录一下。第一个问题是,当我执行terraformapply的时候,当他开始创建EC2的时候
当我们在Terraform模板里面创建资源的时候,如果有多个重复的资源,我们可以通过count来指定个数,他会自动执行一个类似forloop的循环,然后我们可以通过count.index来指向他每次循环的索引值。从编程的思维来理解,就是我们执行一个for循环,每次循环获取index的值,从一个对应长度的数组里面获取元素值赋给name这个参数例如我创建3个IAM用户,分别有三个不同的名字。注意这里为
这一章笔记总结一下变量在Terraform里面的定义和使用。变量在Terraform里面可以通过多种方式来定义:系统的环境变量命令行里面指定从文件里面指定从variabledefault的值指定下面来看几个例子例1我创建一个EC2,把一个自定义的变量传给我的instance_type在terraform,我们可以额外创建一个文件叫做variables.tf,在里面声明我们的变量值,然后就可以从主文
和Cloudformation类似,我们也可以在Terraform的模板文件里面定义output,输出对应的resource的属性。例1:配置一个EIP和S3,输出他们的属性provider"aws"{region="us-west-2"access_key="AKIA23243L4J2KL243GX"secret_key="fw2fia3aeTAARhL2LuX3Tsd97KM73+M7JE82
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号