常规获取ck教程
这里以JD为例
打开[JD](京东登录注册 (jd.com))网站
开启调试模式 (F12)
登录账号
打开网络,找到signindex
找到pt-key以及pt-pin字段
填入变量值,提交即可
K8s 持久化存储流程
导读:众所周知,K8s 的持久化存储(Persistent Storage)保证了应用数据独立于应用生命周期而存在,但其内部实现却少有人提及。K8s 内部的存储流程到底是怎样的?PV、PVC、StorageClass、Kubelet、CSI 插件等之间的调用关系又如何,这些谜底将在本文中一一揭晓。
K8s 持久化存储基础
在进行 K8s 存储流程讲解之前,先回顾一下 K8s 中持久化存储的基础概念。
1. 名词解释
in-tree:代码逻辑在 K8s 官方仓库中;
out-of-tree:代码逻辑在 K8s 官方仓库之外,实现与 K8s 代码的解耦;
PV:PersistentVolume,集群级别的资源,由 集群管理员 or External Provisioner 创建。PV 的生命周期独立于使用 PV 的 Pod,PV 的 .Spec 中保存了存储设备的详细信息;
PVC:PersistentVolumeClaim,命名空间(namespace)级别的资源,由 用户 or StatefulSet 控制器(根据VolumeClaimTemplate) 创建。PVC 类似于 P ...
Docker与Containerd的区别
容器运行时容器运行时(Container Runtime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一,用于在容器内部运行应用程序,并提供隔离、资源管理和安全等功能。 在Kubernetes中,容器运行时是负责管理和运行容器的组件。在过去,Docker是最常用的容器运行时,但随着时间的推移,containerd成为Kubernetes的另一个受欢迎的容器运行时选择。
说明:自 kubernetes 1.24 版起,Dockershim 已从 Kubernetes 项目中移除。
容器运行时的主要任务包括:
容器创建和启动:容器运行时负责根据预定义的容器配置信息(如镜像、命令、环境变量等),创建并启动容器实例。容器文件系统管理:容器运行时处理容器的文件系统,负责将镜像的内容挂载到容器的文件系统,并在容器之间提供隔离。资源限制和管理:容器运行时可以根据用户或管理员定义的资源限制,管理容器对CPU、内存、磁盘等资源的使用。容器网络:容器运行时协助配置容器的网络,使得容器可以与其他容器或外部网络进行通信。安全性:容器运行时实施安全机制,确保容器之间和宿 ...
使用 OpenTelemetry Collector 收集 Kubernetes 日志数据
前面我们介绍了如何通过 OpenTelemetry Collector 来收集 Kubernetes 集群的指标数据,接下来我们再来了解下如何收集集群的日志记录数据。
安装 Loki首先我们需要部署 Loki 来收集日志数据,同样我们这里使用 Helm Chart 来快速部署,不过需要注意同样不需要部署任何日志采集器,因为我们将使用 OpenTelemetry Collector 来收集日志数据,然后再将其发送到 Loki 中。
12helm repo add grafana https://grafana.github.io/helm-charthelm repo update
我们这里创建一个 loki-values.yaml 文件来配置 Loki Helm Chart:
12345678910111213141516171819202122232425262728293031# loki-values.yamlloki: commonConfig: replication_factor: 1 auth_enabled: false storage: type ...
使用 OpenTelemetry Collector 采集 Kubernetes 指标数据
Kubernetes 已成为一个被广泛采用的行业工具,对可观测性工具的需求也在不断增加。为此,OpenTelemetry 创建了许多不同的工具,来帮助 Kubernetes 用户观察他们的集群和服务。
接下来我们将开始使用 OpenTelemetry 监控 Kubernetes 集群,将专注于收集 Kubernetes 集群、节点、pod 和容器的指标和日志,并使集群能够支持发出 OTLP 数据的服务。
Kubernetes 以多种不同的方式暴露了许多重要的遥测数据。它具有用于许多不同对象的日志、事件和指标,以及其工作负载生成的数据。 为了收集这些数据,我们将使用 OpenTelemetry Collector。该收集器可以高效地收集所有这些数据。
为了收集所有的数据,我们将需要安装两个收集器,一个作为 Daemonset,一个作为 Deployment。收集器的 DaemonSet 将用于收集服务、日志和节点、Pod 和容器的指标,而 Deployment 将用于收集集群的指标和事件。
为了安装收集器,我们这里将使用 OpenTelemetry Collector Helm 图表( ...
Ubuntu apt源密钥不可用解决方案
现象
报错如下
1The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D8FF8E1F7DF8B07E
apt update报错
1234W: GPG error: https://repos.influxdata.com/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D8FF8E1F7DF8B07EE: The repository 'https://repos.influxdata.com/ubuntu focal InRelease' is not signed.N: Updating from such a repository can't be done securely, and is ...
使用helm安装NFS-Client Provisioner实现动态存储
本文介绍使用helm安装NFS-Client Provisioner实现动态存储,主要包括使用helm安装NFS-Client Provisioner实现动态存储使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
准备
1.1 搭建好NFS服务
1.2 安装好helm
helm安装地址
安装
1234567891011#添加helm源helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner#直接安装(10.1.129.86为NFS地址,/data/nfs-ops为共享的目录)helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \ --set nfs.server=10.1.129.86 \ - ...
Linux加固脚本
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
在kubernetes中部署rookCeph
安装CRD资源1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002 ...
K8s Pod IP 分配机制
概述Pod 作为 K8s 中一等公民,其承载了最核心的 Container(s) 的运行。同时,Pod 也是 K8s 中资源调度的最小单位,因此熟悉其初始化过程(包括网络、存储、运行时等)将会使我们更加深入理解 K8s 的容器编排原理,以期更好的服务各类业务。
Pod 初始化核心流程如下:
kube-apiserver 收到客户端请求(Controller 或 kubectl 客户端)后,创建对应的 Pod;
kube-scheduler 按照配置的调度策略进行 Pod 调度,选择最为合适的 Node 作为目标节点;
kubelet(运行于每个 Node 上的 K8s agent)Watch 监听到调度到所在节点的 Pod(s),开始真正创建 Pod;
由 CRI 首先创建出 PodSandbox,初始化对应的网络 net namespace,调用 CNI 获取 Pod IP;
接着 CRI 开始创建 Pod 中第一个 pause container,绑定到上一步创建的 net namespace 和 Pod IP;
接着由 CRI 依次创建和启动 Pod 中声明的 initCont ...