Debian 爱好者社区 为您找到相关结果 28

深入了解Docker背后的namespace技术

Docker基于mamespace、cgroups、chroot等技术来构建容器,不是一个系统调用就能搞定,容器是一个用户态的概念。本文中Docker软件工程师Michael Crosby深入探讨了Docker对namespace技术的应用。 相信你在很多地方都看到过“Docker基于mamespace、cgroups、chroot等技术来构建容器”的说法,但你有没有想过为何容器的构建需要这些技术? 为什么不是一个简单的系统调用就可以搞定?原因在于Linux内核中并不存在“linux container”这个概念,容器是一个用户态的概念。 Docker软件工程师Michael Crosby将撰写一些列博客,深入到Docker运行的背后,探索在 docker run这段代码的背后发生了什么...阅读全文

博文 2015-05-17 10:03:00 debian.cn

通过Prometheus查询K8S集群Pod 的CPU、内存、网络指标

="",dockerVersion="17.03.0-ce",kernelVersion="4.9.148",osVersion="CentOS Linux 7 (Core)"} 1 # HELP container_cpu_load_average_10s Value of container cpu load average over the last 10 seconds. # TYPE container_cpu_load_average_10s gauge container_cpu_load_average_10s{container_name="",id="/",image="",name="",namespace="",pod_name=""} 0...阅读全文

博文 2020-08-13 20:41:03 debian.cn

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

文章目录 1、PodPreset 介绍2、环境、软件准备3、K8s 启用 PodPreset 配置4、PodPreset 注入信息示例4.1、匹配指定 Pod 加载配置4.2、匹配某个 Namespace 下所有 Pod 加载配置 1、PodPreset 介绍 PodPreset 是一种 K8s API 资源,用于在创建 Pod 时注入其他运行时需要的信息,这些信息包括 secrets、volume mounts、environment variables 等,我们可以使用标签选择器来指定某个或某些 Pod,来将 PodPreset 预设信息应用上去。使用 PodPreset 的好处就是我们可以将一些常用 Pod 预设信息配置为模板,这样就不需要显式为每个 Pod 提供所有信息,简化...阅读全文

博文 2021-01-27 18:47:00 CSDN博客

Kubernetes常用命令大全(持续更新)

kubernetes,简称K8s,是知名的开源容器编排与调度平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们将列举常用的kubernetes命令,后续会完善内容并提升易读性。 想起十几年前,我曾在Linux伊甸园的论坛,整理过一份rpm常用命令的列表,不知有多少朋友看过? 查看所有namespace的pods运行情况 kubectl get pods --all-namespaces 查看具体pods,记得后边跟namespace名字哦 kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system 查看...阅读全文

博文 2020-03-13 12:35:13 debian.cn

如何重启 Kubernetes 中的 Pods

{namespace} 这个方法简单粗暴有效。因为 Kubernetes 是声明式 API,所以删掉了之后,Pod API 对象就与预期的不一致了,便会自动重新创建 Pod 保持与预期一致。但是如果ReplicaSet 管理的 Pod 对象很多的话,那么要一个个手动删除,会很麻烦,所以可以使用命令来删除 ReplicaSet, kubectl delete replicaset {rs_name} -n {namespace} 由于 Deployment 对象并不是直接操控的 Pod 对象,而是操控的 ReplicaSet 对象,而 ReplicaSet 对象就是由副本数目的定义和Pod 模板组成,所以我们也可以通过调整 ReplicaSet 的数量来实现重启,比如先 scale 到 0,然后再 scale...阅读全文

博文 2020-07-13 21:23:30 debian.cn

Apollo 配置中心简单介绍

的权限、流程治理等特性。 Apollo支持4个维度管理Key-Value格式的配置: application (应用)environment (环境)cluster (集群)namespace (命名空间) 同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo 1.3 配置基本概念 既然Apollo定位于配置中心,那么在这里有必要先简单介绍一下什么是配置。 按照我们的理解,配置有以下几个属性: 配置是独立于程序的只读变量 配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。其次,配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。常见的配置有:DB Connection Str...阅读全文

博文 2021-04-09 17:53:51 CSDN

Docker 核心原理

用,容器之间相互隔离,并且能按需分配资源。大大提高了运维效率和资源利用率 架构 Docker使用了 C/S 体系架构,Docker 客户端与 Docker 守护进程通信,Docker 守护进程负责构建,运行和分发 Docker 容器。Docker 客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。 我们日常在命令行的操作 docker build, docker push, docker pull, docke build 等等操作都是客户端通过 rest api 请求与 Docker 守护进程交互。 实现原理 下面我们就介绍一下 Docker 在实现隔离,资源控制,文件系统等关键部分所采用的的技术 Namespace Linux manaul...阅读全文

博文 2021-02-25 09:14:23 lxkaka

APISIX Ingress 如何使用 Cert Manager 管理证书

有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:kubectl create namespace ingress-apisix 步骤二:安装 Apache APISIX Ingress Controller 我们可以通过 Helm 来安装 Apache APISIX Ingress Controller,包括数据面的 Apache APISIX 和 etcd 集群。 helm repo add apisix https://charts.apiseven.com helm repo update helm install apisix apisix/apisix --set gateway.tls.enabled=true --set ingress...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

使用 nvme-cli 工具来了解你的 NVMe 驱动器

>' may be either an NVMe character device (ex: /dev/nvme0) or annvme block device (ex: /dev/nvme0n1).The following are all implemented sub-commands:list List all NVMe devices and namespaces on machinelist-subsys List nvme subsystemsid-ctrl Send NVMe Identify Controllerid-ns Send NVMe Identify Namespace, display structureid-ns-granularity Send NVMe...阅读全文

博文 2021-09-26 15:12:24 joseph

基于thanos搭建分布式prometheus

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 apiVersion: v1kind: Servicemetadata: name: thanos-receive-nodeport namespace: monitoringspec: ports: - name: http port: 10902 protocol: TCP targetPort: 10902 - name: remote-write port: 19291 protocol: TCP targetPort: 19291 - name: grpc port: 10901 protocol: TCP...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

kubenetes 如何给资源打标签?如何删除标签?

给名为foo的Pod添加label unhealthy=true, `kubectl label pods foo unhealthy=true` 给名为foo的Pod修改label 为 'status',值为 'unhealthy',且覆盖现有的value。 `kubectl label --overwrite pods foo status=unhealthy` 给默认的 namespace 下的所有 pod 添加 label, `kubectl label pods --all status=unhealthy` 仅当resource-version=1时才更新名为foo的Pod上的label, `kubectl label pods foo...阅读全文

nsenter 及 Linux命名空间 简介

,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 56:7b:98:07:30:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.134.93/27 brd 192.168.134.95 scope global eth0 valid_lft forever preferred_lft forever 通过内网 IP 地址,我们得知已成功进入容器内部。 原理 namespace namespace 是 Linux 中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。 Linux在不断的添加命名空间,目前有: mount:挂载命名空间,使...阅读全文

博文 2020-12-15 11:22:44 debian.cn

k8s 中发现很多为状态为 Evicted 的 Pod

背景 在查看k8s的环境的时候,突然发现存在n多个pod状态为Evicted。差不多得有几百个。 解决 同事愉快的丢了个链接给我,让我自己看一波:What will happen to evicted pods in kubernetes? 查看了一下pod的信息。结果发现是磁盘满了。 kubectl describe pod {pode_name} -n {namespace} 但是得手动删除Evicted状态的pod kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted...阅读全文

博文 2021-03-05 08:34:20 diablo4

Kubernetes 部署 Nacos 1.4 集群 · 小豆丁

-binding subjects: - kind: ServiceAccount name: nacos-admin namespace: devops roleRef: kind: ClusterRole name: nacos-admin-clusterrole apiGroup: rbac.authorization.k8s.io 执行部署 Nacos RBAC 资源 -n:指定部署的 Namespace $ kubectl apply -f nacos-rbac.yaml -n mydlqcloud 2、创建数据库配置 ConfigMap 资源 nacos-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: nacos...阅读全文

博文 2021-02-24 10:10:29 www.mydlq.club

ChaosMesh 的基本功能有哪些

Mesh 通过 Kubernetes 原生的 RBAC(基于角色的权限控制)功能对权限进行管理。用户可以根据实际的权限需求自由地创建多种 Role,然后绑定到用户名 Service Account 上,最后生成 Service Account 对应的 Token。用户使用该 Token 登陆 Dashboard,只能在该 Service Account 允许的权限范围内进行 Chaos 实验。此外 Chaos Mesh 还支持通过设置 Namespace Annotation 的方式开启特定 Namespace 下混沌实验的权限,进一步保障混沌实验的可控性。​​​​​​​...阅读全文

Apollo 分布式配置中心详解

等方式已经越来越无法满足开发人员对配置管理的需求。Apollo 配置中心应运而生! Apollo 配置中心功能特点 正是基于配置的特殊性, Apollo 在设计之初就立志于成为一个有治理能力的配置管理平台。当前提供了以下一些特性, 统一管理不同环境、不同集群的配置 Apollo 提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。同一份代码部署在不同的集群,可以有不同的配置,通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。 配置修改实时生效(热发布) 用户在 Apollo 修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序...阅读全文

博文 2020-04-12 12:16:26 debian.cn

2022年云原生服务网格展露的五大趋势

。Ingress 作为 Kubernetes 的初代入口网关,资源模型过于简单,以致无法适应当今的可编程网络。Gateway API 作为 Kubernetes 入口网关的最新成果,它通过角色划分将关注点分离,并提供跨 namespace 支持使其更适应多云环境,已获得大多数 API 网关的支持;入口网关(南北向)与服务网格(东西向,集群内路由)存在部分功能重叠,Gateway API 为两者的融合提供了新的参考模型。三是 eBPF 开始兴起。越来越多的开源项目使用 eBPF 技术,比如 Cilium 将 eBPF 引入容器原生网络,Merbridge 使用 eBPF 加速 Istio 中的透明流量劫持,Pixie 使用 eBPF 来构建可观察性堆栈,SkyWalking 使用 eBPF 来诊断服务网格的...阅读全文

在TKE上使用Kubecost进行成本管理

、Memory、Storage。 4. **资源效率**: - 基于当前的资源提供量和过去7天的资源使用量计算。 - 资源分成三个维度: Compute、Memory、Storage。 - 成本构成四个维度:空闲、系统、应用、其他。 5. **Controller Allocation**:按 Controller 分类,通过过去两天计算每个 Controller 的成本。 6. **Service Allocation**:按 Service 分类,通过过去两天计算每个 Service 的成本。 7. **Namespace Allocation**:按 Namespace 分类,通过过去两天计算每个 NS 的成本以及成本效率。 计算方法:每种资源利用率 × 各自的价格之和 / 总价格 8...阅读全文

Cortex: 高可用和水平扩展Prometheus监控系统

\ --set datasources."datasources\.yaml".datasources[0].isDefault=true kubectl port-forward svc/grafana 3000:80 运行以下命令以获取Grafana管理员密码。之后,打开localhost:3000/explore并使用用户名"admin"和打印的密码登录。kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo 以下是一些示例查询,您可以运行这些查询来测试Prometheus是否向Cortex发送指标:up{cluster="one...阅读全文

博文 2021-10-09 17:00:22 知乎

Kubernetes v1.21 新特性预览

API 来配置 Sysctl 了。Pod disruption budgets(PDB)进入稳定版本,已有用户注意切换 API 版本到 apiVersion: policy/v1。RootCAConfigMap 进入稳定版本,kube-controller-manager 将会在每个 namespace 发布一个名为 kube-root-ca.crt 的 ConfigMap,内容是 ca.crt,可用来验证 Kubernetes API 连接。EndpointSlice 进入稳定版本,已有用户注意切换 API 版本到 apiVersion: discovery.k8s.io/v1。ServiceAccountIssuerDiscovery 进入稳定版本,该特性使得用户能够用联邦的方式结合使用...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

Kubernetes源码探疑:Pod IP泄露排查及解决方法

PodName,Sandbox容器ID,NameSpace,VPC IP等对应关联信息进行额外存储。这样当进入DEL操作后,只需要通过kubelet传入的PodName,Sandbox容器ID和NameSpace即可找到VPC IP,然后通过UCloud 公有云相关API删除之,无需依赖NETNS操作。 考虑到问题的根因是出现在kubelet源码中的SyncPod函数,UK8S团队也已修复kubelet相关源码并准备提交patch给Kubernetes社区。 写在最后 Kubernetes依然是一个高速迭代中的开源项目,生产环境中会不可用避免遇见一些异常现象。UK8S研发团队在学习理解Kubernetes各个组件运行原理的同时,积极根据现网异常现象深入源码逐步探索出问题根因,进一步保障UK8S服务的稳定...阅读全文

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

者的工作方式类似,但有一点区别:与验证链和授权链不同,如果某个准入控制器检查不通过,则整个链会中断,整个请求将立即被拒绝并且返回一个错误给终端用户。 准入控制器设计的重点在于提高可扩展性,某个控制器都作为一个插件存储在 plugin/pkg/admission 目录中,并且与某一个接口相匹配,最后被编译到 kube-apiserver 二进制文件中。 大部分准入控制器都比较容易理解,接下来着重介绍 SecurityContextDeny、ResourceQuota 及 LimitRanger 这三个准入控制器。 SecurityContextDeny 该插件将禁止创建设置了 Security Context 的 Pod。ResourceQuota 不仅能限制某个 Namespace 中创建资...阅读全文

博文 2022-04-18 16:18:04 CSDN

Linux下多线程程序为什么消耗大量虚拟内存

线程内分配一个很小的内存1k,整个进程虚拟内存立马增加64M,然后再分配,内存就不增加了。测试代码如下: #include #include #include #include using namespace std; volatile bool start = 0; void* thread_run( void* ) { while ( 1 ) { if ( start ) { cout << "Thread malloc" << endl; char *buf = new char[1024]; start = 0; } sleep( 1 ); } } int main() { pthread_t th...阅读全文

博文 2015-01-28 10:35:39 debian.cn

细数k8s支持的4种类型的container - 侃豺小哥

", "imagePullPolicy": "IfNotPresent", "name": "debugger", "stdin": true, "tty": true, "terminationMessagePolicy": "File" }] } 使用如下命令更新已运行的临时容器 example-pod: kubectl replace --raw /api/v1/namespaces/default/pods/example-pod/ephemeralcontainers -f ec.json 这将返回临时容器的新列表: { "kind":"EphemeralContainers", "apiVersion":"v1", "metadata":{ "name":"example-pod", "namespace...阅读全文

博文 2021-08-20 11:45:32 博客园

容器原理之cgroup - abin在路上

“ 以 docker 为代表,轻量、便携的 container 使得打包和发布应用非常容易。系列文章容器原理主要分析 container 用到的核心技术,主要包括 Linux namespace,cgroups,overlayfs,看完这些内容,你将可以手动创建一个和 container 类似的环境。 cgroup(control group)是一个内核特性,用于限制、统计、隔离一组进程的资源(CPU、内存、磁盘、网络等),首字母不要大写。 “ “cgroup” stands for “control group” and is never capitalized. 单数形式(cgroup)指所有特性,也可以作为“cgroup controllers”的修饰。 复数形式(cgroups)指...阅读全文

博文 2025-03-17 20:45:47 博客园

Hadoop 核心 - HDFS 分布式文件系统详解

NameSpace) HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。 Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被 Namenode 记录下来。 HDFS 会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。 4. NameNode 元数据管理 我们把目录结构及文件分块位置信息叫做元数据。NameNode 负责维护整个 HDFS 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的...阅读全文

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

Label、Namespace 等概念非常适合用来构建上下文信息。3、繁多监测系统,造成监测界面不一致复杂系统带来的一个严重副作用就是监测系统繁多。数据链路不关联、不统一,监测界面体验不一致。很多运维同学或许大多都有过这样的体验:定位问题时浏览器打开几十个窗口,在 Grafana、控制台、日志等各种工具之间来回切换,不仅非常耗时巨大,且大脑能处理的信息有限,问题定位效率低下。如果有统一的可观测性界面,数据和信息得到有效地组织,减少注意力分散和页面切换,来提高问题定位效率,把宝贵时间投入到业务逻辑的构建上去。二、解决思路与技术方案为了解决上述问题,我们需要使用一种支持多语言,多通信协议的技术,并在产品层面尽可能覆盖软件栈端到端的可观测性需求,通过调研,我们提出一种立足于容器界面和底层操作系统,向上关联...阅读全文

博文 2022-03-21 09:11:51 joseph