自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 运维-SEGV内存错误分析

项目无法打开,查看PHP日志发现显示多个进程运行过程中遇到了段错误导致进程异常退出了。

2022-10-10 16:06:20 919 1

原创 K8s-资源管理-Qos(避免OOMKilled)

K8s-资源管理-Qos(避免OOMKilled)

2022-10-06 15:36:55 654

原创 K8s-临时容器 Ephemeral Containers

例如,在容器镜像中不包含 shell 或者你的应用程序在启动时崩溃的情况下, 就不能通过运行 kubectl exec 来排查容器故障。在这些情况下,你可以使用 kubectl debug 来创建 Pod 的副本,通过更改配置帮助调试。加上-i参数将直接进入添加的临时容器的控制台界面,因为是使用kubectl run 创建的pod ,所以需要-target 参数指定另一个容器的进程命名空间。此时再去看pod 的信息会发现已经被添加了一个类型为ephemeralContainers的容器。

2022-10-06 14:07:42 1926

原创 k8s-master 高可用

准备工作安装 keepalived 和 HAProxy 并配置所有 Master 节点配置 KeepAlived,由于 KeepAlived 需要配置自身的IP地址和网卡名称,因此每个 KeepAlived 节点的配置都不一样所有 Master 节点配置 KeepAlived 健康检查文件所有节点启动HAProxy 和 KeepAlived测试 VIP 是否可用。

2022-09-29 15:46:10 536

原创 基于Istio的高级流量管理三

10秒后断开连接超时重试处理,默认会在返回code码为5开头时触发。

2022-09-09 11:40:26 415

原创 基于Istio的高级流量管理二

解读:访问域名 bookinfo.bianmc.com 如果 match 端口80,路径 /productpage ,就 destination 转发到目的地名为 productpage 的svc,svc的端口为9080,所以 VirtualService 对应的是路由 route 转发规则。解读:定义了 Gateway 规则对象,指定标签 istio=ingressgateway ,处理的域名为 bookinfo.bianmc.com ,定义了一个 80 端口,协议为HTTP。

2022-09-05 17:30:04 397

原创 基于Istio的高级流量管理一

使用 sidecar 后的链路istio 会获取 当前集群内的所有 service 信息并组成一个个的 cluster,一个service 就会有一个 CLUSTER,一个 Pod 会生成一个 ENDPOINTistio 把对应的 CLUSTER 和 ENDPOINT 组合起来当我们插入sidecar 去启动一个服务时,ENDPOINT 的端口、outbound 的端口、route 的配置、cluster 的配置都会被配置好这个时候请求往外走了,到了主机的iptables。.........

2022-09-01 16:45:44 636

原创 K8s-Kubernetes 网络

Flannel 通过Overlay技术(数据包再封装)发送数据包到达目标容器。Calico 使用直接路由的模式传递数据包。

2022-08-25 11:07:43 595

原创 Istio-流量复制

观察v1和v2的日志,是否只访问了v1资源流量都被复制了一份到v2,在日志中的X- Forword-For字段中可以明确看到增加了一个/P地址,这个/P地址就是Istio的IngressGateway的地址,由IngressGateway将流量复制到V2 程序中。v2的日志存在两个ip,左边ip是v1的,流量已经复制成功。.........

2022-08-17 14:39:32 420

原创 Istio-Bookinfo灰度发布

v1版本不带五角星1.2 定义VirtualService规则编排文件1.3 创建VirtualService和DestinationRule1.3 访问测试无论如何刷新都是不带五角星页面2.2 访问测试9:1的比例显示无星和黑五星3.2 访问测试1:1的比例显示无星和黑五星Istio的灰度发布还支持基于HTTP的头部信息字段做一些流量转发控制,比如根据请求中用户使用的浏览器版本做一些流量空开,谷歌浏览器使用V2版本的程序,其他浏览器使用V3版本的程序等等,只要请求头中包含的

2022-08-12 17:44:31 197

原创 Istio-部署Bookinfo实例程序

本示例部署一个名称为bookinfo的应用程序,该应用程序由四个单独的微服务组成,用于演示各种Istio功能。该应用程序用于显示书籍有关的信息,类似于在线书籍商店的单个目录条目。页面上显示的是书的说明,书的详细信息(ISBN,页数等)和一些书评。该应用程序是由多种多语言编写的,即微服务以不同的语言编写。值得注意的是,这些服务不依赖于Istio。......

2022-08-12 16:10:16 912

原创 DevOps-Nexus3

3)节省中央maven仓库的带宽;4)稳定(应付一旦中央服务器出问题的情况)5)控制和审计;6)能够部署第三方构件;7)可以建立本地内部仓库8)可以建立公共仓库。

2022-07-30 15:41:41 106

原创 DevOps-jenkins-SonarQube-2

创建配置激活规则修改质量配置。

2022-07-29 11:43:53 838

原创 DevOps-jenkins-SonarQube-1

官方文档https//docs.sonarqube.org/latest/analysis/scan/sonarscanner/Jenkinslib共享库jenkinslib/src/org/devops/sonarqube.groovy。/home/sonarqube/sonarqube-8.9.9.56886/temp。测试-在项目文件中创建shell文件,或者在项目文件目录运行命令。配置-修改中文界面(确定安装三方插件后重启服务生效)sonarqube配置。.........

2022-07-23 18:00:13 658

原创 DevOps-jenkins-流水线优化

为了避免权限上的报错先设置权限gitlab创建appjenkins设置。

2022-07-21 17:08:38 784

原创 DevOps-jenkins 常用DSL

DevOps-jenkins常用DSL

2022-07-16 16:08:14 362

原创 DevOps-jenkins流水线语法及构建工具封装

post。

2022-07-16 15:24:40 748

转载 服务账户service account在kubernetes1.24中的变化

当创建pod时需要在pod里的.spec.serviceAccount指定pod以哪个service account运行,如果没有指定的话则默认使用default这个sa。然后通过投射卷,在pod的目录/run/secrets/kubernetes.io/serviceaccount/会有一个文件token,里面包括了容器所能用到令牌。我们通过RBAC对sa授了什么权限,那么容器里的app拿着这个token,就具备了什么权限。那么pod里的这个token是从哪里来的呢?我们分几个版本的kubernetes分

2022-07-08 09:17:24 655

原创 K8s-多集群配置

设置用户设置上下文 把用户和集群捆绑在一起使用切换集群

2022-07-04 15:39:13 272

原创 DevOps-持续集成持续部署二

整套流程创建JOB(jenkinsfile中不能有中文,否则无法保存)注意:jenkinsfile中不能有中文,否则无法保存,需要修改jenkins配置让blueocean支持中文上面设置了手动获取branch,现在设置自动触发获取,后期增加判断,只执行其中一个如果Jenkins服务器在kubernetes集群之外,我们准备以下文件才能从外面连接到kubernetes集群。将certificate-authority-data的内容复制出来在本地制作kube-ca.crt将clien

2022-07-04 15:12:03 1449

原创 DevOps-持续集成持续部署一

JDK 官网: https://www.oracle.com/java/technologies/downloads/#java8-linux部署jenkins官网:https://www.jenkins.io/zh/download/设置权限挂载设置deployment设置svc设置ingress创建(apply)所有所需yaml文件检查访问ingress中设置的域名来访问jenkins密码保存在运行的jenkins容器中安装插件(后期更新插件一定要先备份插件–家目录下的plug

2022-07-02 15:50:47 337

转载 创建pod时如何在pod里引用本身的IP地址

如果pod所用镜像里的程序要求指定自己的IP才能正常运行的话,那么在pod还没有创建出来之前都没有IP,那么该如何在pod的yaml文件里指定自己的IP?这里可以在env.valueFrom里通过fileldRef.fieldPath来引用,看下面的例子。这里创建了一个名字为pod1的pod,里面定义了三个变量:当然了有人说我怎么知道fieldRef后面的值,可以随便创建一个pod然后通过kubectl get pods pod名 -o yaml 进行查看。创建pod并测试:这里pod的IP是10.24

2022-06-28 09:51:47 887

原创 K8S-微服务调用及运行过程

在实际的项目中,微服务之间涉及到业务代码的部分,调用逻辑非常复杂。对于工程师而言,熟悉组件之间的调用关系。方便之后的业务模块开发、以及集群部署与自动化编排过程中有非常大的帮助(基础)。并且能够非常请楚哪些应用应该对外,哪些可以不用对外以及服务是怎样存活。注册中心服务、配置中心服务、服务提供者、服务消费者、路由网关服务安装Nacos(单机)官方网站 https://nacos.io/zh-cn/docs/deployment.htmlNacos支持三种部署模式单机模式下运行Nacos登入界面

2022-06-25 16:44:25 1590

原创 K8S-微服务组件

一个完整的微服务包括的组件:注册中心、配置中心、熔断、限流、链路跟踪、路由在微服务中,有些组件为必须组件,(必须启动存在),客户端才能正常调用。注册中心可以说是微服务架构中的“”地址簿“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就这里找到服务的地址,进行调用。服务注册中心给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件注册中

2022-06-25 14:14:35 1013

原创 K8S-微服务Spring Cloud介绍

概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持业务的小服务,每个小服务可以独立运行与部署.在业务代码更新过程中,不可避免的会影响到其他业务的系统。而在上线之前,一般都会经历测试的阶段,但是在业务系统庞大之后,不论每次软件版本功能的更新大与小,测试无法全面测试。有时候甚至是在当时上线没有发现问题,可能会在下次发布或者是在其他的操作过程中,才发现问题。这样处理问题的故障定位就会异常的复杂,不能快速准确的定位问题。 基于此背景,微服务概念应用而生。业务系统服务的发展经历了几个阶段:SOA(Serv

2022-06-24 16:20:22 501

转载 k8s-控制器-pdb(PodDisruptionBudget)

当我们对某工作节点执行drain操作的时候,会立即把该worker上运行的pod立即删除,然后在其他节点上创建对应的pod。比如有一个名字为web1的deploy,有6个副本,worker1和worker2上各运行了3个副本。现在如果对worker1执行drain操作的话,会立即删除worker1上的3个pod,然后在worker2上创建。但是如果pod的创建速度比较慢的话,那么此时整个环境里只有3个pod对外提供工作了。那么如何确保在对worker执行drain操作的时候,保证pod必须以一个指定的数目的

2022-06-23 16:49:34 1465

原创 CKS-最小化服务漏洞-pod security policy(PSP)

使用第三方的开源软件、准入控制器来提升系统的安全性我们创建的pod基本上是没有任何限制的1.此pod里的进程,可以以任何用户身份运行2.可以使用任一类型的存储3.比如使用hostPath,可以使用任何任一类型的宿主机目录4.使用宿主机的网络空间5.pod里也可以使用特权运行我想限制:不允许使用特权运行?不允许使用emptyDir类型的存储?如果使用hostPath存储的话,只能映射到宿主机的/tmp目录2.运用psp测试禁止特权运行2.1 创建一个psp给john一个权限,可以对p

2022-06-22 17:53:44 499

原创 CKS-系统强化-SECcomp(sysdig)

linux kernel从2.6.23版本开始所支持的一种安全机制在Linux系统里,大量的系统调用(systemcall)直接暴露给用户态程序。但是,并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。通过seccomp,我们限制程序使用某些系统调用,这样可以减少系统的暴露面,使程序进入一种“安全”的状态。官方说明 https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt我们系统有300多个系

2022-06-22 13:32:44 389

原创 CKS-系统强化-POLP(apparmor)

POLP

2022-06-22 11:38:23 805

原创 CKS-系统的强化-减少服务器安全隐患(内核模块)

Linux内核会根据需要从磁盘自动加载内核模块,与Kubernetes特别相关的是,即使没有特权的进程也可以通过创建适当类型的套接字来加载某些与网络协议相关的内核模块,这可能使攻击者可以利用管理员认为未使用的内核模块中的安全漏洞。......

2022-06-22 10:10:28 491

原创 工作中遇到的木马文件

工作中遇到的木马

2022-06-22 09:18:19 250

转载 配置cri-docker使kubernetes1.24以docker作为运行时

从kubernetes 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为kubernetes的容器运行时了,即从kubernetesv1.24开始不再使用docker了。但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker。cri-docker是一个支持CRI标准的shim(垫片)。一头通过CRI跟kubelet交互,另一头

2022-06-15 10:14:03 5927 3

原创 K8S部署lnmp项目

将LNMP迁移到k8s架构上会使得应用的启动、迁移、部署变得即简单又安全。不必担心应用迁移后工作出现问题,也不用担心一台服务器无法应付突发的用户量。MySQL是一种有状态服务,MySQL在某些情况下如果发生故障性退出可能会出现服务无法再次启动的情况,所以使用StorageClass(NFS)来挂载,并使用Deployments来保证应用的持续,这里设置replicas为1,后期部署主从后再行修改Mysql 配置1. 创建mysql密码的认证 (secret)2. 创建mysql的Service、de

2022-06-15 10:05:08 1657

原创 K8s遇到的问题

问题: iptables -L -n |grep Chain [Chain INPUT (policy ACCEPT)]iptables无法转发问题描述有两个(或多个)运行在不同节点上的pod,通过一个svc提供服务,如下:当透过其他pod访问该svc时(使用命令k exec kubia-nwjcc – curl http://10.98.41.49),出现了只能访问到和自己同处于一个节点的pod的问题,访问到其他节点上的pod时会出现command terminated with exit

2022-06-11 10:47:59 3446

原创 部署k8s其它组件

NFS作为动态 storageClass

2022-06-09 09:19:32 59

转载 升级kubernetes 从1.23.2到1.24.1

前面讲了runtime如何由docker迁移到containerd,点击阅读kubernetes环境从docker迁移到containerd下面看迁移之后如何由1.23.2升级到1.24.1,这里特别需要注意kubelet参数的改变,否则kubelet没法启动,状态一直为activating。修改两个节点的参数,下面的步骤应该在runtime迁移之后就做的。如果不改的话,再更新时会有如下报错。2.升级master1.先安装kubeadm1.24.12.腾空节点vms613.升级控制节点各组

2022-06-08 17:04:17 556

原创 安装K8S(linux)

关闭防火墙,selinux,配置/etc/hosts,关闭swap, 配置yum

2022-06-08 15:13:05 291

转载 kubernetes环境从docker迁移到containerd

本实验共两台节点,vms61是master,vms62是workerkubernetes版本是v1.23.2系统版本是 centos7.4具体如下:上面运行了一个测试用的deploy,有两个副本。2.迁移master1.先对master(vms61)执行drain操作。2.关闭并卸载docker卸载docker3.安装并配置containerd在vms61上安装containerd步骤1:先生成配置文件/etc/containerd/config.toml。步骤2:使用vim编

2022-06-08 11:25:08 304

原创 CKS-集群的强化-Kubernetes API的访问

集群的强化通过设置提高集群的安全性 1. 验证方式 2. 授权方式 3. SA的安全设置登入k8s的验证方式 1. token方式 2. kubeconfig方式 3. oauth2方式 4. 其他第三方登录 https://www.tremolosecurity.com/products/orchestra-for-kubernetestoken方式1.在master上开启 token 认证并关联用户root@vms81:~/cks/day2# openssl rand -he

2022-05-28 13:44:25 1038

原创 CKS-集群设置-SHA512

SHA512检查下载文件的校验码和官方网站显示的是否一致,如果不一致,文件就被修改过了sha512sum kube-apiserverf417c0555bc0167355589dd1afe23be9bf909bf98312b1025f12015d1b58a1c62c9908c0067a7764fa35efdac7016a9efa8711a44425dd6692906a7c283f032c kube-apiserve**怎么样比对**把得到的校验码和官方提供的放一个txt文件中root@vms

2022-05-28 11:44:22 139

ssh证书登录配置.doc

ssh证书登录设置,只是懒不想编辑

2020-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除