自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Kubernetes APIServer安全 审计日志

What are Kubernetes audit logs?Audit logsrecord requests to theKubernetes API. Because the API server processes all changes to Kubernetes state—and serves as the gatekeeper to the backend database that stores this state—the API server is an ideal po.....

2021-07-31 13:14:04 2271

转载 FlexVolume

FlexVolume 是 Kubernetes v1.8+ 支持的一种存储插件扩展方式。类似于 CNI 插件,它需要外部插件将二进制文件放到预先配置的路径中(如/usr/libexec/kubernetes/kubelet-plugins/volume/exec/),并需要在系统中安装好所有需要的依赖。对于新的存储插件,推荐基于CSI构建。FlexVolume 接口实现一个 FlexVolume 包括两个步骤实现FlexVolume 插件接口,包括init/attach/d...

2021-07-29 17:37:38 531

转载 The differences between Docker, containerd, CRI-O and runc

DockerWe have to start with Docker because it’s the most popular developer tool for working with containers. And for a lot of people, the name “Docker” itself is synonymous with the word “container”.Docker kick-started this whole revolution. Docker cre

2021-07-29 10:50:22 266

转载 How to rightsize the Kubernetes resource limits

Kubernetes resource limits are always a tricky setting to tweak, since you have to find thesweet spot between having the limits too tight or too loose.In this article, which is a continuation of theKubernetes capacity planning series, you’ll learnhow ...

2021-07-27 11:21:11 317

原创 Kubernetes 安全容器技术 kata gvisor

本文将主要分享以下五方面的内容:缘起:安全容器的命名 间接层:安全容器的精髓 Kata Containers:云原生化的虚拟化 gVisor:进程级虚拟化 安全容器:不止于安全一、缘起:安全容器的命名Phil Karlton 有一句名言:“计算机科学界只有两个真正的难题——缓存失效和命名。”对我们容器圈而言,我相信「命名」绝对配得上这句话。这毫无疑问是一件让老开发者沉默、让新人落泪的事情。仅就系统软件而言,我们当今比较通行地称为「Linux 容器技术」这个概念,它曾经用过的名字还.

2021-07-27 10:43:11 1141

转载 2021-07-26

你好,欢迎你来到专栏第一课。这一讲我将带领你学习 Apache SkyWalking,那为什么我会以 Apache SkyWalking 作为第一讲呢?首先 Apache SkyWalking 在国际上是非常受欢迎的 APM 系统,在 APM 的核心领域(如全链路追踪、网站性能)都非常具有前瞻性。它采用字节码增强技术,极大地降低了接入成本;支持 Java、.Net 等多语言探针,并提供 Dubbo、gRPC 等多种开源框架插件;诞生于社区,没有企业束缚和语言障碍。其开放、共享精神让其成为当之无愧的“

2021-07-26 16:33:03 213

原创 分析容器系统调用:Sysdig

分析容器系统调用:SysdigSysdig:一个非常强大的系统监控、分析和故障排查工具。 汇聚 strace+tcpdump+htop+iftop+lsof 工具功能于一身!(核心的功能就是将工具整合在一块)sysdig 除了能获取系统资源利用率、进程、网络连接、系统调用等信息, 还具备了很强的分析能力,例如: • 按照CPU使用率对进程排序 • 按照数据包对进程排序 • 打开最多的文件描述符进程 • 查看进程打开了哪些文件 • 查看进程的HTTP请求报文 • 查看机器

2021-07-26 09:59:15 1104

原创 Skywalking UI使用

Skywalking UI使用第一栏:不同内容主题的监控面板,应用/数据库/容器等 第二栏:操作,包括编辑/导出当前数据/倒入展示数据/不同服务端点筛选展示 第三栏:不同纬度展示,服务/实例/端点全局: • Service Load:CPM 每分钟回调次数 • Slow Services:慢响应服务,单位ms • Un-Health Services:不健康的服务,1为满分 • Slow Endpoints:慢端点,单位ms • Global Respon...

2021-07-23 17:31:48 651

原创 APM监控系统 微服务接入SkyWalking

微服务监控需求随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。这些服务可能不同编程语言开发,不同团队开发,可能部署很多副本。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。“APM系统” 就在这样的问题背景下产生了。 APM系统 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。AP.

2021-07-23 16:45:27 1079 4

原创 Docker 理解进程(1):为什么我在容器中不能kill 1号进程?

问题再现接下来,我们一起再现用 kill 1 命令重启容器的问题。我猜你肯定想问,为什么要在容器中执行 kill 1 或者 kill -9 1 的命令呢?其实这是我们团队里的一位同学提出的问题。这位同学当时遇到的情况是这样的,他想修改容器镜像里的一个 bug,但因为网路配置的问题,这个同学又不想为了重建 pod 去改变 pod IP。如果你用过 Kubernetes 的话,你也肯定知道,Kubernetes 上是没有 restart pod 这个命令的。这样看来,他似乎只能让 pod ...

2021-07-21 08:25:22 4477 7

原创 Kubernetes 准入控制器: Admission Webhook

Admission Webhook:准入控制器Webhook是准入控制插件的一种,用于拦截所有向APISERVER发送的请求,并且可以修改请求或拒绝请求。 Admission webhook为开发者提供了非常灵活的插件模式,在kubernetes资源持久化之前,管理员通过程序可以对指定资源做校验、修改等操作。例如为资源自动打标签、pod设置默认SA,自动注入sidecar容器等。 相关Webhook准入控制器: • MutatingAdmissionWebhook:修改资源,理论上可以监

2021-07-20 22:44:34 3242

原创 Kubernetes 检查YAML文件安全配置:kubesec

检查YAML文件安全配置:kubesec kubesec:是一个针对K8s资源清单文件进行安全配置评估的工具,根据安全配置最佳实践来验证并给出建议。 官网:https://kubesec.io 项目地址:https://github.com/controlplaneio/kubesec[root@master ~]# mv kubesec /usr/bin/下面每个id给你标识了安全建议 ,下面给出了配置的最佳实践示例: [root@master k8s]# kubes

2021-07-20 22:09:24 926

转载 为什么微服务一定要有网关?

什么是服务网关spring: cloud: gateway: discovery: locator: #开启以服务id去注册中心上获取转发地址 enabled: true ##小写serviceId lower-case-service-id: true routes: - id: product-service uri: lb://p

2021-07-19 11:29:38 274

原创 Kubernnetes pod健康检查:存活性探测&就绪性探测

(你创建了一个Pod,发现pod是running状态,而且处于ready状态,但是pod里面部署的容器想要访问的时候就还是访问不了,这是因为你的pod没有做健康检查,ReadinessProbe主要来确定容器是否已经就绪: 只有当Pod里的容器部署的应用都处于就绪状态,如果没有探针,k8s无法知道应用是否还活着,只要pod还在运行,k8s则认为容器是健康的。看Pod里容器部署的应用是否就绪,是否可以对外提供服务。,如果连接建立则探测成功,否则探测失败容器重启。探测Pod里的容器是否启动成功,

2021-07-19 10:05:59 168

原创 Kubernetes 可信任软件供应链概述

可信任软件供应链概述 可信任软件供应链:指在建设基础架构过程中,涉及的软件都是可信任的。在K8s领域可信软件供应链主要是指镜像,因为一些软件交付物都是镜像,部署的最小载体。镜像构建要写dockefile去构建,默认收以root账号权限去运行的,如果你不清楚这一块,那么这块的风险就已经放开了构建镜像Dockerfile文件优化 • 减少镜像层:一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。 • 清理无用文件:清理对应的残留数据,例如yum缓存,减..

2021-07-18 11:00:55 237

转载 Docker 认识容器:容器的基本操作和实现原理

作为一名工程师,我猜在过去的几年时间里,你肯定用过或者听人提起过容器(Container)。说实话,容器这东西一点都不复杂,如果你只是想用的话,那跟着Docker 官网的说明,应该十来分钟就能搞定。简单来说,它就是个小工具,可以把你想跑的程序,库文件啊,配置文件都一起“打包”。然后,我们在任何一个计算机的节点上,都可以使用这个打好的包。有了容器,一个命令就能把你想跑的程序跑起来,做到了一次打包,就可以到处使用。当然,空讲原理也没什么感觉,所以我还是会先带着你启动一个容器玩玩,然后咱们再一起来探讨容器

2021-07-15 17:33:30 714 1

原创 Kubernetes 最小化微服务漏洞 gVisor与Containerd集成

已经测试过的应用和工具:https://gvisor.dev/docs/user_guide/compatibility/这里可以看到现有的哪些应用可以使用gvisor,因为官方已经给你测试了。除此之外不能够百分之百去使用。除此之外还有哪些工具是可以使用的。安全沙箱运行容器:gVisor与Containerd集成由docker切换到containerd容器引擎(安装conatinerd------>kubelet安装containerd----->最后验证)在切换之..

2021-07-14 21:00:27 566

原创 Kubernetes 最小化微服务漏洞 安全沙箱运行容器:gVisor介绍与安装

现在容器通过什么技术实现的隔离1.使用Linux namespace和cgroup技术隔离容器2.Linux内核是共享的使用的容器不是强隔离的环境,和虚拟机是无法媲美的,虚拟机从硬件到软件,再到内核是完全的隔离,而容器只隔离了一部分。降低容器的安全风险:(1)AppArmor:限制容器中的进程访问系统文件权限(2)Seccomp:过滤容器当中的进程对linux的系统调用(3)Capabilities:限制容器中的进程对Linux的内核系统调用能力(root权限进行逻辑划分,针

2021-07-14 08:22:32 1702 2

转载 10 个 Kubernetes 安全上下文配置

在 Kubernetes 中安全地运行工作负载是很困难的,有很多配置都可能会影响到整个 Kubernetes API 的安全性,这需要我们有大量的知识积累来正确的实施。Kubernetes 在安全方面提供了一个强大的工具securityContext,每个 Pod 和容器清单都可以使用这个属性。在本文中我们将了解各种securityContext的配置,探讨它们的含义,以及我们应该如何使用它们。securityContext设置在PodSpec和ContainerSpec规范中都有定义,...

2021-07-12 21:13:04 494

原创 Kubernetes 最佳安全实践指南

在 Kubernetes 中安全地运行工作负载是很困难的,有很多配置都可能会影响到整个 Kubernetes API 的安全性,这需要我们有大量的知识积累来正确的实施。Kubernetes 在安全方面提供了一个强大的工具securityContext,每个 Pod 和容器清单都可以使用这个属性。在本文中我们将了解各种securityContext的配置,探讨它们的含义,以及我们应该如何使用它们。securityContext设置在PodSpec和ContainerSpec规范中都有定义,...

2021-07-12 20:59:44 1731

原创 Kubernetes Secret Opaque 存储敏感数据

通过这种方式在yaml文件里面来指定mysql的密码现然是不安全的,mysql可以读取注入的变量MYSQL_ROOT_PASSWORD值作为其密码,以为describe一下就能够看得到。Secret是一个用于存储敏感数据的资源,所有的数据要经过base64编码,数据实际会存储在K8s中Etcd, 然后通过创建Pod时引用该数据。• generic:从文件、目录或者字符串创建,例如存储用户名密码。• docker-registry:存储镜像仓库认证信息。• tls:存储证书,例如HTTPS证书。

2021-07-12 20:27:20 383

原创 K8s Pod Security Policy实践

什么是 Pod 安全策略?Pod 安全策略(Pod Security Policy)是集群级别的资源,它能够控制 Pod 规约 中与安全性相关的各个方面。PodSecurityPolicy对象定义了一组 Pod 运行时必须遵循的条件及相关字段的默认值,只有 Pod 满足这些条件 才会被系统接受。 Pod 安全策略允许管理员控制如下方面:控制的角度 字段名称 运行特权容器 privileged 使用宿主名字空间 hostPID、hostIPC 使用宿主的网络和端口...

2021-07-10 19:22:27 2238

原创 Kubernetes 系统强化 Pod安全策略 PSP

第一步PodSecurityPolicy(简称PSP):Kubernetes中Pod部署时重要的安全校验手段,能够 有效地约束应用运行时行为安全。 使用PSP对象定义一组Pod在运行时必须遵循的条件及相关字段的默认值,只有Pod满足这 些条件才会被K8s接受。(在部署的时候去校验的,在运行的时候是不管的,当你创建podd的时候会去校验)Pod安全策略限制维度Pod安全策略限制维度:在之前的行为在yaml里面写一些安全配置都是有意识的去选择,如果k8s集群是别人使..

2021-07-10 11:21:16 1383

原创 Kubernetes 系统强化 Pod安全上下文

安全上下文(Security Context):K8s对Pod和容器提供的安全机制,可以设置Pod特权和访问控制。背景:容器中的应用程序默认以root账号运行的,这个root与宿主机root账号是相同的, 拥有大部分对Linux内核的系统调用权限,这样是不安全的,所以我们应该将容器以普 通用户运行,减少应用程序对权限的使用。(容器是宿主机上面的进程,该进程有r非常大的权限,容器只是在宿主机上面封装了状态,也是一个实际进程)可以通过两种方法设置普通用户: • Dockerfi

2021-07-06 22:52:26 688

原创 Kubernetes 容器安全 Seccomp 限制容器进程系统调用

Seccomp(Secure computing mode) 是一个 Linux 内核安全模块,可用于应用进程允许使用的系统调用。 容器实际上是宿主机上运行的一个进程,共享宿主机内核,如果所有容器都具有任何系统调用的能力,那么容器如果被入侵,就很轻松绕过容器隔离更改宿主机系统权限或者进入宿主机。 这就可以使用Seccomp机制限制容器系统调用,有效减少攻击面。 Linux发行版内置:CentOS、Ubuntu在Kubernetes中使用Seccomp:Seccomp在K8

2021-07-05 17:12:03 4089

原创 Jenkins 流水线语法进阶 07 循环语句 for while

5.times就是循环5次。类似于c语言的for循环格式,还有一个就是自己的循环。最后还有一个遍历的就是for循环。

2021-07-05 16:36:28 4049

原创 Jenkins 流水线语法进阶 08 switch语句

/*定义参数branchName匹配 develop 则打印develop ,跳出。匹配 release 则打印release ,跳出。默认匹配, 打印 error ,退出。*/String branchName = "release"switch(branchName) { case "develop": println("develop .....") break case "release": println("release.....") bre.

2021-07-04 18:42:25 1305

原创 Jenkins 流水线语法进阶 06 条件语句 if语句

/*定义变量参数branchName如果branchName 等于dev则打印dev,如果branchName 等于test则打印test,上面都不匹配则打印skipdeploy*/String branchName = "dev"if ( branchName == "dev" ){ println("dev....")} else if (branchName == "test"){ println("test....")} else { println("skipde.

2021-07-04 18:28:21 3335

原创 Jenkins 清除工作目录

扩展: 如何清除工作目录? 安装Workspace Cleanup插件。在Pipeline 的Post中的always添加CleanWs() always { script{ echo "always......" cleanWs() } }

2021-07-04 18:18:30 2705

原创 Kubernetes 容器安全 最小特权原则POLP AppArmor限制容器对资源访问

最小特权原则(POLP) 最小特权原则 (Principle of least privilege,POLP) :是一种信息安全概念,即为用户提供执行其工作职责所需的最小权限等级或许可。 最小特权原则被广泛认为是网络安全的最佳实践,也是保护高价值数据和资产的特权访问的基本方式。最小特权原则 (POLP) 重要性• 减少网络攻击面:当今,大多数高级攻击都依赖于利用特权凭证(提权)。通过限制超级用户和管理员权限,最小权限执行有助于减少总体网络攻击面。 • 阻止恶意软件的传播:

2021-07-04 11:51:44 846

原创 Kubernetes 准入控制插件 LimitRange pod资源配额

资源配额 LimitRange默认情况下,K8s集群上的容器对计算资源没有任何限制,可能会导致个别容器资源过大导致影响其他容器正常工作,这时可以使用LimitRange定义容器默认CPU和内存请求值或者最大上限。(默认是使用宿主机上面所有的资源)在哪个命名空间下面创建,那么就是应用在哪个命名空间。LimitRange限制维度: • 限制容器配置requests.cpu/memory,limits.cpu/memory的最小、最大值 • 限制容器配置requests.cpu/

2021-07-02 10:33:09 833

原创 Kubernetes 准入控制插件 资源配额 ResourceQuota

资源配额 ResourceQuota当多个团队、多个用户共享使用K8s集群时,会出现不均匀资源使用,默认情况下先到先得,这时可以通过ResourceQuota来对命名空间资源使用总量做限制,从而解决这个问题。使用流程:k8s管理员为每个命名空间创建一个或多个ResourceQuota对象,定义资源使用总量,K8s会跟踪命名空间资源使用情况,当超过定义的资源配额会返回拒绝。ResourceQuota功能是一个准入控制插件,默认已经启用。还可以基于存储类来控制PVC请求的总量。计算资源配

2021-07-01 09:29:12 3746 1

空空如也

空空如也

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

TA关注的人

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