• 如何调试 crash 容器的网络

    背景现在大部分的公司业务基本都已经容器化,甚至 K8S 化的情况下,当容器、Pod 运行异常时,无非是看看其日志和一些 K8S event 信息,当容器、Pod 内部出现网络访问失败时,或者其他一些问题时。通常会进入容器、Pod 内部通过一些网络工具来进行调试,那么问题来了。一般容器内是不会安装太多...

    K8S 开发可不止 CRUD

    K8S 技术债当下云原生浪潮算是推到了巅峰,Kubernetes 是云原生技术中最为🐂X 的了。Kubernetes 是一个较为复杂的项目,学习成本也比较高,到底要掌握到什么程度,我认为可以根据个人工作职责来定位,如果个人有兴趣可以参考以下,一直递进学习~业务开发• 了解 Kubernetes、D...

    Client-go 四种客户端

    简介Client-Go 共提供了 4 种与 Kubernetes APIServer 交互的客户端。分别是 RESTClient、DiscoveryClient、ClientSet、DynamicClient。• **RESTClient:**最基础的客户端,主要是对 HTTP 请求进行了封装,支持...

    Kubernetes 证书详解(鉴权)

    简介上一篇 Kubernetes 证书详解(认证) 系统分析了 Kubernetes 集群中每个证书的作用和证书认证的原理。对于 Kube-apiserver,Kubelet 来说,它们都能提供 HTTPS 服务,Kube-apiserver、Kubelet 对于一个请求,既要认证也要鉴权。在 Ku...

    Client-go 架构

    简介Client-go 源码位于 https://github.com/kubernetes/client-go,是 Kubernetes 项目非常重要的子项目,Client-Go 是负责与 Kubernetes APIServer 服务进行交互的客户端库,利用 Client-Go 与Kuberne...

    Kubernetes 源码结构

    简介Kubernetes 源码非常庞大,其中包括自身核心代码,以及对外提供给开发者的 sdk 等。Kubernetes 的源码结构也是按照上述五个组成部分来组织的,这里以 Kubernetes:v1.22.17 讲解,其主要目录结构如下:kubernetes/ ├── api/ ├─...

    Kubernetes API

    简介kube-apiserver 组件是 k8s 中非常重要的组件,每个组件都只能和 kube-apiserver 进行通信,kube-apiserver 提供所有的 API。资源与 API在 k8s 中,一般都说某某资源,并不说接口。比如 Deployment,Service 等资源,这些资源就是...

    面试用 Golang 手撸 LRU

    上周参加一个云原生 DevOps 开发的面试,第一轮面试问一些技能、项目相关问题,最后留了 20 分要求用 Golang 实现 LRU。过程大概用了半个多小时,大概写出来了 80 %,一面勉强过了。写篇文章记录下,加深印象。LRU 是什么LRU(Least recently used,最近最少使用)...

    容器内的 1 号进程

    简介在 Linux 系统中,系统启动的时候先是执行内核态的代码,然后在内核中调用 1 号进程的代码,从内核态切换到用户态。内核执行的第一个用户态程序就是 1 号进程。目前主流的 Linux 发行版,无论是 RedHat 系的还是 Debian 系的,都会把 /sbin/init 作为符号链接指向 S...

    容器原理

    简介当在任何一个能够运行 CRI (Docker、Containered 等) 的机器上,使用 docker run <image-id> 启动一个容器后。从使用者的角度来看,容器和一台独立的机器或者虚拟机几乎没有什么区别。使得我们在容器里就像操作虚拟机一样将服务运行在容器中,这样你的机...