首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TA码字

    K8s源码分析(5)-Resource Meta 序列化

    serializer.json.Serializer 的源码定义如下: // staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go serializer.json.Serializer 的 MetaFactory 组件负责反序列化 resource 的 group, version, kind,其 overall 的流程如下: 从源码的角度看

    76810发布于 2021-10-08
  • 来自专栏luozhiyun的技术学习

    5.深入k8s:StatefulSet控制器及源码分析

    这一篇中我重新按照源码重新撸了一遍,希望能加深对k8s的理解,源码版本是1.19,在阅读源码的时候可以参照着一起看会比较便于理解。 提供稳定的网络标识 在k8s中,Service是用来将一组 Pod 暴露给外界访问的一种机制。 源码分析 在k8s中,有三个文件stateful_pod_control.go、stateful_set.go、stateful_set_control.go共同完成了对statefulset的实现。 最后通过源码,我们更清晰的了解到了statefulset中的创建、更新、删除等操作是如何实现的。 in Action》 《深入理解k8s

    1.4K11发布于 2020-08-11
  • 来自专栏k8s源码解析

    k8s源码-源码编译及目录详解

    源码下载及编译(本文以1.16.0-alpha.3为例) k8s github地址: https://github.com/kubernetes/kubernetes k8s的编译有两种方式: 1: /build/run.sh hack/build-go.sh cmd/kubelet单独编译某个组件 目录概览 k8s源码采用 go module(go 1.11rc1开始支持)管理包,go module

    8K53发布于 2019-11-17
  • 来自专栏全栈程序员必看

    k8s 开源_openstack源码

    Create->CreateWithOptions->createResource

    33510编辑于 2022-09-22
  • 来自专栏盛开在夏天的太阳

    5. Spring5源码--Spring AOP源码分析

    aop是面向切面编程,相比传统oop,aop能够在方法的前置,中置,后置中插入逻辑代码,对于项目中大量逻辑重复的代码,使用aop能很好的收口逻辑,将逻辑独立于业务代码之外,一处编写,多处使用。

    40810发布于 2020-12-02
  • 来自专栏golang云原生new

    k8s 自身原理 5

    我们知道容器是通过 pod 来承载的,我们在 k8s 中,服务都是跑在 pod 里面的,pod 里面可以跑 1 个容器,或者跑多个容器,那么咱们 pod 里面跑 1 个服务容器,咱真的就以为里面就只有这样个容器吗

    15330编辑于 2023-09-01
  • 来自专栏才浅coding攻略

    图解K8s源码 - 序章 - K8s组件架构

    概念上来讲,K8S 集群的服务,其实就是负载均衡或反向代理。

    1.1K10编辑于 2022-12-12
  • 来自专栏全栈程序员必看

    java md5加密源码_javaMD5加密源码

    ; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Tool { /** * 该方法将指定的字符串用MD5算法加密后返回。 * @param s * @return */ public static String getMD5Encoding(String s) { byte[] input=s.getBytes(); ’,’d’,’e’,’f’}; try{ // 获得一个MD5摘要算法的对象 MessageDigest md=MessageDigest.getInstance(“MD5”); md.update (input); /* MD5算法的结果是128位一个整数,在这里javaAPI已经把结果转换成字节数组了 */ byte[] tmp = md.digest();//获得MD5的摘要结果 char[]

    68810编辑于 2022-09-14
  • 来自专栏云原生工具箱

    图解 K8S 源码 - QoS 篇

    这里就引出了 QoS 的概念,本篇文章就会从源码的角度介绍 QoS 的分类、打分机制,并简单介绍不同 QoS 的本质区别。看看这个机制是如何保证运行在 Kubernetes 中服务质量的。 这里附上源码: // github/kubernetes/pkg/kubelet/qos/policy.goconst ( // KubeletOOMScoreAdj is the OOM score

    1.2K10发布于 2020-12-30
  • 来自专栏才浅coding攻略

    图解K8s源码 - kubelet 篇

    我们在之前的文章中介绍了 Master 控制平面中的三大组件:kube-apiserver、kube-controller-manager、kube-scheduler,它们分别负责 k8s 集群的资源访问入口 " protobuf:"bytes,4,opt,name=message"` Source EventSource `json:"source,omitempty" protobuf:"bytes,5, 另外,k8s 中 events 目前只有两种类型:"Normal" 和 "Warning"。 系列往期文章列表: Kubernetes微服务常见概念及应用 图解K8s源码 - 序章 - K8s组件架构 图解K8s源码 - k8s核心数据结构 图解K8s源码 - kube-apiserver篇 图解K8s源码 - kube-apiserver下的RBAC鉴权机制 图解K8s源码 - kube-controller-manager篇 图解K8s源码 - kube-scheduler篇

    1.5K20编辑于 2022-12-12
  • 来自专栏kinnylee钻研技术

    k8s源码分析- Informer机制

    最近加入云原生社区组织的k8s源码研习社,开始学习k8s底层源码,并整理成笔记。欢迎感兴趣的同学一起加入,共同学习进步。群里和社区里有各种大佬,随时可以帮你答疑解惑。 先放一张调用关系图 高清地址 由于Informer这部分的源码比较复杂,调用链路也很长,后面的源码分析,都会围绕这一张图展开。 ? 概述 k8s中,组件之间通过http通讯,在不依赖任何中间件的情况下,需要保证消息的可靠性、实时性、顺序性等?k8s是如何做到的呢?--- 答案就是Informer。 k8s的其他组件都是通过informer与api-server通讯的。 Informer运行原理 ? 中占据重要的角色,它的源码也是非常的复杂。

    5.9K118发布于 2020-10-15
  • 来自专栏小工匠聊架构

    Spring5源码 - 构建源码环境

    2020.2.1 + OpenJDK8U-jdk_x64_windows_hotspot_8u265b01 + gradle-6.5.1-bin.zip 遵循官方指导文档 ---- git clone 源码 源码地址: https://github.com/spring-projects/spring-framework ? 选择你拉取的spring源码,方式选择build.gradle ? 等待index完成,需要下载jar包 ,不是很快(我用了好几次,耗时好几个小时),如果期间出错,多试几次。 ? 至此,spring5.1.x的源码编译导入idea就算完成了。

    74420发布于 2021-08-17
  • 来自专栏盛开在夏天的太阳

    2.1 Spring5源码--源码编译

    源码下载   git地址: 进入https://github.com/spring-projects/spring-framework   Spring的源码是发布在github上面的 ? ? 构建工作准备 安装源码有两种方式: 第一种: 下载spring使用的对应的Gradle版本,安装 第二种: 使用自带的gradleWrapper. 查看spring源码中gradle的版本. 下载对应版本的gradle. 在gradle-wrapper.properties中查看版本号 ? 编译Spring源码项目 1. 编译compileTestJava模块 进入到源码所在文件夹, 执行一下命令. 我的是mac本, 所以需要加./, 如果是windows本就不需要加 .

    1.3K20发布于 2020-09-27
  • 来自专栏Java架构师必看

    spring源码分析5

    spring源码分析5 强烈推介IDEA2020.2破解激活,IntelliJ 原文链接:https://gper.club/articles/7e7e7f7ff3g5bgc0

    29620发布于 2021-04-13
  • 来自专栏爪哇缪斯

    源码解析:ThreadPoolExecutor(5

    3.4> 任务添加到队列的代码逻辑 源码部分如下所示: 【解释】 通过isRunning方法来判断线程池状态是不是运行中状态,如果是,则将command任务放到阻塞队列workQueue中。 并不执行任务(因为,任务已经在上面的offer方法中被添加到了workQueue中了,等待线程池中的线程去消费队列中的任务) ---- 3.5> 线程池中的线程数量小于最大线程数代码逻辑以及拒绝策略的代码逻辑 源码部分如下所示 ---- 四、 源码解析——addWorker(Runnable firstTask, boolean core) 看完execute方法的源码解析,我们发现,代码里的逻辑判断就是我们在【1.2> 线程池工作流程 与它相似用法在ConcurrentHashMap中也出现过,如下所示: ---- 4.3> addWorkder的Part1解析 我们先看一下Part1的源码和注释: 在Part1中,首先还是从类型为 ---- 后面的内容,参见:源码解析:ThreadPoolExecutor(6)

    17310编辑于 2023-05-09
  • 来自专栏架构师成长之路

    k8s实践(5k8s的命名空间Namespace

    5、案例 创建一个测试namespace test-limitrange,创建LimitRange定义文件 lr-test.yaml: apiVersion: v1 kind: LimitRange metadata 小团队 这种场景下,你一般运作5 - 10 个微服务,很容易做到管理这些服务。这种情况下,你将所有的服务创建在default空间中是合理的。

    6.2K41编辑于 2022-04-14
  • 来自专栏才浅coding攻略

    图解K8s源码 - k8s核心数据结构

    阿巩 期待同大家一起学习和交流~ 在上一章中阿巩和大家分享了k8s组件之一kube-apiserver,在我自己阅读代码时发现k8s整体结构复杂,而且由于参与的开发者众多代码结构不免有些混乱,我往往容易陷入到某个细节而无法从整体视角梳理流程 在查阅官网文档及相关书籍后,我决定换个思路,先理解k8s核心数据结构设计,这样能够在阅读源码时做到事半功倍。好的,日拱一卒,我们开始吧! K8s系统虽然功能众多且复杂,但它本质上是一个资源控制系统,即资源是k8s最重要的概念,它包括注册、管理、调度资源并维护资源状态。 4,opt,name=verbs"` // 资源简称 ShortNames []string `json:"shortNames,omitempty" protobuf:"bytes,5, 文章最后附上k8s Project Layout结构图: 参考: 《kubernetes源码剖析》 https://blog.51cto.com/daixuan/4976182 END

    1.3K20编辑于 2022-12-12
  • 来自专栏Coder小黑

    Spring5 源码学习 (5) ConfigurationClassPostProcessor (上)

    Spring5 源码学习 (4) refresh 方法 中讲到了refresh()方法中的invokeBeanFactoryPostProcessors(beanFactory)方法主要在执行BeanFactoryPostProcessor registryId); processConfigBeanDefinitions(registry); } 主要的逻辑在processConfigBeanDefinitions(registry);中,点开源码 candidateNames 前5个是Spring注册的内置processor,最后一个是传入给AnnotationConfigApplicationContext的配置类AppConfig.class 源码学习笔记:https://github.com/shenjianeng/spring-code-study

    69330发布于 2019-12-18
  • 来自专栏TA码字

    K8s源码分析(2)-Resource Meta

    "` APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,2,opt,name=apiVersion"` } 由上述源码我们发现字段 omitempty" protobuf:"bytes,4,opt,name=selfLink"` UID types.UID `json:"uid,omitempty" protobuf:"bytes,5, ManagedFieldsEntry `json:"managedFields,omitempty" protobuf:"bytes,17,rep,name=managedFields"` } 由上述源码我们发现里面定义的都是资源本身的各个属性

    66010发布于 2021-09-14
  • 来自专栏TA码字

    K8s源码分析(3)-Resource Version

    接下来我们来看一下不同 version 的 resource 都定义在什么地方: 对于各个资源组外部版本的定义在如下源码位置: 我们以 apps group 资源组为例,对于其外部版本的 resource 定义如下: 对于各个资源组 internal version 的定义在如下源码位置: 同样我们还是以 apps 资源组为例,其 internal version 的 resource 定义如下 : 从源码的角度来看,我们以 apps group 中的 v1 version 的 deployment resource 为例,它在 staging/src/k8s.io/api/apps/v1/ metav1.ObjectMeta Spec DeploymentSpec Status DeploymentStatus } 从上面例子中 deployment 资源的外部版本和内部版本的定义源码

    1.2K10发布于 2021-09-14
领券