容器技术
文章平均质量分 88
大囚长
大丈夫遗世独立,孑然一身。
展开
-
k8s部署grafana beyla实现app应用服务依赖图可观测
OS:Static hostname: testIcon name: computer-vmChassis: vmMachine ID: 22349ac6f9ba406293d0541bcba7c05dBoot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02Virtualization: vmwareOperating System: Ubuntu 22.04.4 LTSKernel: Linux 5.15.0-105-genericArchitecture: x原创 2024-06-19 18:05:58 · 623 阅读 · 0 评论 -
kubespray离线安装k8s
OS:Static hostname: testIcon name: computer-vmChassis: vmMachine ID: 22349ac6f9ba406293d0541bcba7c05dBoot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02Virtualization: vmwareOperating System: Ubuntu 22.04.4 LTSKernel: Linux 5.15.0-105-genericArchitecture: x原创 2024-06-14 16:40:59 · 1123 阅读 · 0 评论 -
Kubectl 命令技巧大全
kubectl命令是操作 Kubernetes 集群的最直接和最高效的途径,这个 60 多 MB 大小的二进制文件,到底有啥能耐呢?转载 2024-06-11 17:40:09 · 120 阅读 · 0 评论 -
k8s AIOps
k8sgpt 是一个用于扫描Kubernetes集群、诊断和分级问题的工具。它以简单的英语呈现问题,并将站点可靠性工程(SRE)的经验编码到其分析器中。通过AI丰富问题的解释,k8sgpt帮助提取最相关的信息。它支持与多个AI服务提供商的开箱即用集成,包括OpenAI、Azure、Cohere、Amazon Bedrock、Google Gemini以及本地模型. 这意味着您可以根据自己的需求选择不同的AI服务提供商。k8sgpt内置了如下的分析器:rsAnalyzer。原创 2024-06-07 11:00:40 · 1174 阅读 · 0 评论 -
使用kubespray部署k8s生产环境
Kubespray 是一个开源项目,它利用 Ansible Playbook 来自动化部署 Kubernetes 集群。支持多种基础设施:可以部署在 AWS, GCE, Azure, OpenStack 以及裸机上。高可用性:支持部署高可用的 Kubernetes 集群。可组合性:用户可以选择不同的网络插件(如 flannel, calico, canal, weave)来部署。支持多种 Linux 发行版。原创 2024-06-05 14:02:31 · 1181 阅读 · 0 评论 -
k8s和deepflow部署与测试
环境详情:当您在上安装登录到主节点并使用在每个节点的/etc/hosts$(-cs部分配置手动修改设置crictl安装一个 Pod 网络插件,例如 Calico 或 Flannel。启动otel-collector和otel-agent需要程序集成API,发送到以DaemonSet运行在每个节点的otel-agent,otel-agent再将数据发送给otel-collector汇总,然后发往可以处理otlp trace数据的后端,如zipkin、jaeger等。原创 2024-06-04 11:12:53 · 1418 阅读 · 2 评论 -
变革中的容器技术
另一方面,低级容器运行时也在不断发展和创新,以提供更好的安全性和性能。除了最常用的 runc 外,还有一些基于虚拟化技术的容器运行时,如 runv,kata 和 firecracker,它们可以通过虚拟化 guest kernel,将容器和主机隔离开来,提高容器的安全性和隔离性。例如,Kubernetes 作为最流行的容器编排平台,已经宣布弃用 Docker 作为其容器运行时,转而支持符合 CRI (容器运行时接口) 的容器运行时,如 containerd 和 cri-o。原创 2024-02-26 17:51:48 · 843 阅读 · 0 评论 -
Docker 容器有什么缺陷
使用安全容器:容器有着轻便快速启动的优点,虚拟机有着安全隔离的优点,有没有一种技术可以兼顾两者的优点,做到既轻量又安全呢?安全容器与普通容器的主要区别在于,安全容器中的每个容器都运行在一个单独的微型虚拟机中,拥有独立的操作系统和内核,并且有虚拟机般的安全隔离性。使用安全加固组件:Linux 的 SELinux、AppArmor、GRSecurity 组件都是 Docker 官方推荐的安全加固组件,这三个组件可以限制一个容器对主机的内核或其他资源的访问控制,目前容器报告里的一些安全漏洞。转载 2023-02-07 14:57:18 · 1164 阅读 · 0 评论 -
为什么不建议把数据库部署在 Docker 容器内?
近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。目前为止将数据库容器化是非常不合理的,但是容器化的优点相信各位开发者都尝到了甜头,希望随着技术的发展能够更加完美的解决方案出现。针对上面问题是不是说数据库一定不要部署在容器里吗?答案是:并不是。转载 2023-02-07 11:30:26 · 691 阅读 · 0 评论 -
k8s使用statefulset部署mysql一主多从集群_k8s部署mysql集群南
metadata:spec:selector:app: mysqlmetadata:labels:app: mysqlspec:command:image: ist0ne/xtrabackup #此处镜像我做了修改 command:env:resources:requests:cpu: 500mexec:image: ist0ne/xtrabackup #此处镜像我做了修改 ports:= "x" ] ];do sleep 1;转载 2023-02-03 15:32:55 · 1331 阅读 · 0 评论 -
为什么k8s天然适合微服务?
在运维眼中他做了过多不该关心的事情,例如服务的发现,配置中心,熔断降级,这都应该是代码层面关心的事情,应该是 SpringCloud 和 Dubbo 关心的事情,为什么要到容器平台层来关心这个。在微服务中,配置往往分为几类,一类是几乎不变的配置,这种配置可以直接打在容器镜像里面,第二类是启动时就会确定的配置,这种配置往往通过环境变量,在容器启动的时候传进去,第三类就是统一的配置,需要通过配置中心进行下发,例如在大促的情况下,有些功能需要降级,哪些功能可以降级,哪些功能不能降级,都可以在配置文件中统一配置。转载 2023-02-03 15:15:06 · 397 阅读 · 0 评论 -
微服务无状态设计原则
对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个 “状态” 数据的 服务被称为有状态服务,反之称为无状态服务。转载 2023-02-03 15:08:46 · 986 阅读 · 0 评论 -
k8s 有状态服务 VS 无状态服务
1.数据方面:无状态服务不会在本地存储持久化数据.多个实例可以共享相同的持久化数据2.结果方面:多个服务实例对于同一个用户请求的响应结果是完全一致的3.关系方面:这种多服务实例之间是没有依赖关系4.影响方面:在k8s控制器 中动态启停无状态服务的pod并不会对其它的pod产生影响5.示例方面:nginx实例,tomcat实例,web应用6.资源方面:相关的k8s资源有:ReplicaSet、ReplicationController、Deployment。转载 2023-02-03 14:59:20 · 825 阅读 · 0 评论 -
Docker容器镜像安全最佳实践指南
0x02 Docker 容器安全最佳实践1.主机安全配置1.1 更新docker到最新版本1.2 为容器创建一个单独的分区1.3 只有受信任的用户才能控制docker1.4 审计docker守护进程1.5 审计docker相关的文件和目录2.docker守护进程配置2.1 限制默认网桥上容器之间的网络流量2.2 设置为info2.3 允许 docker 更改iptables2.4 不使用不安全的镜像仓库2.5 建议不使用aufs存储驱动程序。转载 2023-01-17 19:51:52 · 1250 阅读 · 0 评论 -
深入浅出 Kubernetes 项目网关与应用路由
本篇内容简述了应用路由的基本架构,并与 Kubernetes Service 及其他应用网关分别做了对比。最后通过 SockShop 这个案例讲解的应用路由的配置方法。希望读者对应用路由能有进一步的理解,根据应用的特性选择合适的外部服务暴露方式。转载 2023-01-13 11:15:50 · 913 阅读 · 0 评论 -
【云原生渗透】- docker runc容器逃逸漏洞(CVE-2019-5736)
运行时存在安全漏洞,攻击者可以通过特定的容器镜像或者exec操作,来获取到宿主机的runc执行时的文件句柄,并修改掉runc的二进制文件,从而可以在宿主机上以root身份执行命令。containerd 向下通过 containerd-shim 结合 runC,使得引擎可以独立升级,避免之前 Docker Daemon 升级会导致所有容器不可用的问题。将该payload拷贝到docker容器中(这就是模拟攻击者获取了docker容器权限,在容器中上传payload进行docker逃逸)转载 2023-01-11 11:06:58 · 1341 阅读 · 0 评论 -
[云原生 | k8s ]k8s中Pod、ReplicaSet、Deployment、Service的区别
Pod被ReplicaSet管理,ReplicaSet控制pod的数量;ReplicaSet被Deployment管理,Deployment控制pod应用的升级、回滚,当然也能控制pod的数量。Service提供一个统一固定入口,负责将前端请求转发给Pod。转载 2022-12-26 11:56:35 · 619 阅读 · 0 评论 -
kubernetes常用命令
【代码】kubernetes常用命令。原创 2022-12-26 10:10:39 · 944 阅读 · 0 评论 -
单台机器离线安装kubesphere
系统:CentOS7.9。配置:4c4g100g。原创 2022-12-26 10:02:50 · 840 阅读 · 2 评论 -
Docker,containerd,CRI,CRI-O,OCI,runc
在本篇中,我们看到 Docker 只是容器生态系统中的一个小部分。另外还有一堆开放的标准,这就使得不同的实现互相之间是可替换的。这就是为什么有 CRI 和 OCI 标准,以及 containerd、runc 和 CRI-O 等项目存在的原因了。现在你知道了关于容器这个有趣而又略显复杂的世界的一切,下次和别人讨论时,不要说你在使用 “Docker 容器” : )转载 2022-12-09 16:45:59 · 326 阅读 · 0 评论 -
k8s 抛弃弃用docker
K8s决定在 1.20 开始放弃 Docker,并在1.21完全抛弃 Docker 的支持。2020 年 12 月,Kubernetes 社区决定着手移除仓库中 Dockershim 相关代码,对于k8s和 Docker 两个社区来说都意义重大。如上图所示,Kubernetes节点代理 Kubelet为了访问Docker提供的服务需要先经过社区维护的 Dockershim,Dockershim 会将请求转发给管理容器的 Docker 服务。Kubernetes 通过下面的一系列接口为不同模块提供扩展性:转载 2022-12-07 13:34:16 · 4190 阅读 · 0 评论 -
云原生的那些坑
第三 ,K10是纯软件,不整啥备份一体机,简单易用,自动化、可视化优秀,运维操作起来毫无压力,而对研发同学们也很友好,保留开放接口,研发可以扩展功能,支持更加复杂的特殊应用。同时,在大规模DevOps场景下,让有状态的应用在CI/CD流程中快速流转,是个老难题,而K10对有状态应用的数据一致性能力,通过持续的“捕获↔️恢复”,就能实现快速迭代。,学习路径极其陡峭。不管是传统架构还是云原生架构,云下的、云上的、多云的,不管稳态业务还是敏态业务,物理的、虚拟的、应用级的、有状态的、无状态的,不管是备份、恢复、转载 2022-10-11 15:17:07 · 317 阅读 · 0 评论 -
什么是云原生,它的关键技术包括哪些
云原生(Cloud Native)是一个组合词,“云”表示应用程序运行于分布式云环境中,“原生”表示应用程序在设计之初就充分考虑到了云平台的弹性和分布式特性,就是为云设计的。可见,云原生并不是简单地使用云平台运行现有的应用程序,它是一种能充分利用云计算优势对应用程序进行设计、实现、部署、交付和操作的应用架构方法。云原生技术一直在不断地变化和发展,关于云原生的定义也在不断地迭代和更新,不同的社区组织或公司对云原生也有自己的理解和定义。转载 2022-10-11 11:29:44 · 554 阅读 · 0 评论 -
Kubernetes常用的工具集合
通过这样的组织方式,Keel 在你的环境中引入的额外负载较小,但显著提升了鲁棒性。Trireme 是一项灵活且直接的 Kubernetes 网络策略实现方案,其适用于任何 Kubernetes 集群,并允许用户管理不同集群中的 pod 之间的流量。Tririme 的主要优势在于其无需任何集中式策略管理,能够轻松实现 Kubernetes 中所部署的两种资源的彼此交互,并且无需配合任何复杂的 SDN、VLAN 标签以及子网(Trireme 使用常规的 L3- 网络)。转载 2022-10-11 11:17:49 · 775 阅读 · 0 评论 -
50+ 个有用的 Docker 工具
Docker工具分类列表。转载 2022-10-11 11:15:16 · 9177 阅读 · 0 评论 -
上K8s,研发团队如何从容一点?
比如,使用K8s配套的测试工具、运维工具,甚至采用一些开源项目的CRD,比如Open Kruise。,研发人员、测试人员只需配合相关的工作,由这一两个人来编写Dockerfile、K8s yaml,也可以由这一两个人写好脚本,开发人员和测试人员直接调用脚本,传递合适参数。如果你的答案是你不需要K8s,那么恭喜你,你可以中止阅读了,你花费了10分钟不到的时间,得到了一个有价值的答案。上面列的困难只是战术上的困难,是有办法解决的。K8s yaml的配置一部分是开发关注的,一部分是运维关注的,如何分工协作?转载 2022-10-11 11:05:47 · 195 阅读 · 0 评论 -
使用 Kubernetes 扩展专用游戏服务器:第4部分-缩减节点
原创科普整理在前三篇文章中,我们将游戏在Kubernetes上,测量并限制它们的资源使用,并根据使用情况扩大集群中的节点。现在我们需要解决更困难的问题:当资源不再被使用时,缩小集群中的节点,同时确保正在进行的游戏在节点被删除时不会中断。从表面上看,按比例缩小集群中的节点似乎特别复杂。每个游戏具有当前游戏的内存状态,并且多个游戏客户端连接到玩游戏的单个游戏服务器。删除任意节点可能会断开活动玩家的连接,这会使他们生气!因此,只有在节点没有专用游戏服务器的情况下,我们才能从集群中删除节点。转载 2022-10-11 11:01:47 · 298 阅读 · 0 评论 -
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
原创科普整理在前两篇文章中,我们研究了如何在Kubernetes上托管专用游戏,并测量和限制其内存和CPU资源。在本期中,我们将探讨如何利用上一篇文章中的CPU信息来确定何时需要扩展Kubernetes集群,因为随着玩家人数的增加,我们已经没有足够的空间来容纳更多的游戏服务器。转载 2022-10-11 10:59:57 · 286 阅读 · 0 评论 -
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
原创科普整理在本系列的第1部分中,我们讨论了如何使用专用游戏,将其与Docker打包,然后在Kubernetes上托管和管理它,这是一个很好的开始。然而,由于我们的Kubernetes集群通常是固定大小的,我们可能会耗尽所有可用容量来运行我们需要的所有游戏服务器,以匹配所有想玩我们的游戏的玩家——这将是一件非常糟糕的事情。Kubernetes集群有很多伸缩选项,我们将在以后的文章中深入介绍一个定制的Kubernetes节点伸缩器。首先,我们必须解决一个非常重要的事情:我的游戏服务器实际上占用了多少CPU。转载 2022-10-11 10:56:32 · 255 阅读 · 0 评论 -
探索使用 Kubernetes 扩展专用游戏服务器:第1部分-容器化和部署
原创科普整理。转载 2022-10-11 10:52:56 · 532 阅读 · 0 评论 -
k8s的host网络模型
一)网络模式介绍(二)bridge模式(docker默认的网络模式)(三)host模式(共享主机的网络模式)(四)container 模式(容器之前的共享模式,学习k8s这个很重要)Pods中的多个container共享一个网络栈,这是基础了。Pods的网络namespace和宿主机的物理网络的namespace不是一个,之间通过docker bridge相连。在pods的namespace中,pods的虚拟网络接口为veth0;在宿主机上,物理网络的网络接口为eth0。docker转载 2022-10-11 10:30:52 · 2706 阅读 · 0 评论 -
15 Kubernetes Best Practices Every Developer Should Know
【代码】15 Kubernetes Best Practices Every Developer Should Know。转载 2022-10-10 17:16:47 · 128 阅读 · 0 评论 -
微服务架构详解
所有的微服务都是独立的Java进程跑在独立的虚拟机上,所以服务间的通信就是IPC(inter process communication),已经有很多成熟的方案。原来的Monolithic方式开发,所有的服务都是本地的,UI可以直接调用,现在按功能拆分成独立的服务,跑在独立的一般都在独立的虚拟机上的 Java进程了。微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年;转载 2022-10-10 16:58:33 · 1346 阅读 · 0 评论 -
【k8s】Service代理模式之IPVS模式、无头服务、发布service五种类型、Fannel原理及Flannel vxlan类型
同一个pod内的多个容器间的通信,通过lo回环网络接口即可实现;同一节点的pod之间通过cni网桥转发数据包。不同节点的pod之间的通信需要网络插件支持。通过iptables或ipvs实现通信,ipvs取代不了iptables,因为ipvs只能做负载均衡,而做不了nat转换。iptables的MASQUERADE。**Service与集群外部客户端的通信:**ingress、nodeport、loadbalancer。转载 2022-08-25 13:35:41 · 1952 阅读 · 0 评论 -
K8S中iptables和ipvs区别
从k8s的1.8版本开始,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是ipvs采用的hash表,iptables采用一条条的规则列表。iptables又是为了防火墙设计的,集群数量越多iptables规则就越多,而iptables规则是从上到下匹配,所以效率就越是低下。对于每个service,它都生成相应的iptables规则,这些规则捕获到service的clusterIP和port的流量,并将这些流量随机重定向到service后端Pod。转载 2022-08-24 14:43:58 · 1777 阅读 · 0 评论 -
k8s containerd集群配置安装完整踩坑教程
完整踩坑和精简内容。原创 2022-08-24 14:37:17 · 5957 阅读 · 0 评论 -
K8S集群入门:运行一个应用程序究竟需要多少集群?
如果你使用Kubernetes作为应用程序的操作平台,那么你应该会遇到一些有关使用集群的方式的基本问题:你应该有多少集群?它们应该多大?它们应该包含什么?本文将深入讨论这些问题,并分析你所拥有的一些选择的利弊。转载 2022-08-22 13:48:17 · 1585 阅读 · 0 评论