kubernetes_dev
文章平均质量分 74
k8s dev
ghostwritten
关注领域:go python k8s docker 数据库 运维
打造一个专属个人更精准的问题解决搜索引擎。
展开
-
kubernetes dev快速学习手册
go k8s.io/klog包详解Kubernetes API详解k8s开发之client-go常用操作使用详解k8s开发之client-go进入pod执行命令k8s开发之client-go增删改查crd对象资源go k8s operator logf日志格式化处理详解原创 2021-02-03 10:18:29 · 311 阅读 · 0 评论 -
kubernetes InitializerConfiguration 分析
文章目录1. Pod Presets and initializers2. initializers如何工作2.1 initializer服务进程(监视是否可做)2.2 initializerConfigMap(做什么)2.3 initializerConfig(给谁做)3. initializers教程3.1 配置3.2 部署 sidecar initializer configMap3.3 部署sidecar initializer3.4 创建initializeConfig3.5 创建一个 nginx原创 2021-10-20 17:53:53 · 678 阅读 · 0 评论 -
kubernetes sample-apiserver解析
简介kubernetes/apiserver同步自kubernertes主代码树的taging/src/k8s.io/apiserver目录,它提供了创建K8S风格的API Server所需要的库。包括kube-apiserver、kube-aggregator、service-catalog在内的很多项目都依赖此库。apiserver库的目的主要是用来构建API Aggregation中的Extension API Server。它提供的特性包括:将authn/authz委托给主kube-apis原创 2021-09-10 17:09:59 · 561 阅读 · 0 评论 -
Kubernetes ImagePolicyWebhook与ValidatingAdmissionWebhook【3】validating_admission.go源码解析
源码:https://github.com/kainlite/kube-image-bouncerhandler的validating_admission.go我们分析完了handler的Image_Policy.go,接下来运用同样的方式分析validating_admission.go我们看一下报错信息$ kubectl describe rc nginx-latest #警告不允许有latest标签的镜像.....Warning FailedCreate 11s (x14 over原创 2021-08-29 13:45:47 · 491 阅读 · 0 评论 -
Kubernetes ImagePolicyWebhook与ValidatingAdmissionWebhook【4】main.go源码解析
包的依赖go fmt包详解go os包文件操作详解go strings包详解echo包详解main.go首先我们了解一下依赖包的各个用途。import ( "fmt" //打印输出 "os" //系统管理 "strings" //字符串管理 "github.com/labstack/echo" //可扩展,轻量级的web框架 "github.com/labstack/echo/middleware" //echo web框架中间件 "github.com/labst原创 2021-08-29 13:07:45 · 411 阅读 · 0 评论 -
Kubernetes ImagePolicyWebhook与ValidatingAdmissionWebhook【2】Image_Policy.go源码解析
对于运维人员来说,如何读懂开发写源代码是很痛苦。往往不知如何去理解才好。没有思路,一个接一个的包的各种接口、方法、函数把你搞的晕头转向。源代码地址:https://github.com/kainlite/kube-image-bouncer**那么,我们从输出的报错信息出发,逆向推理源代码的逻辑。**也许会是个不错的 原则。ImagePolicyWebhook 检验效果的报错信息$ kubectl describe rc nginx-latest #警告不允许有latest标签的镜像 Warn原创 2021-08-20 00:37:20 · 654 阅读 · 0 评论 -
kubernetes 【存储】 编写CSI插件
以DigitalOcean 的块存储(Block Storage)服务,来作为实践对象。DigitalOcean 是业界知名的“最简”公有云服务,即:它只提供虚拟机、存储、网络等为数不多的几个基础功能,其他功能一概不管。而这,恰恰就使得 DigitalOcean 成了我们在公有云上实践 Kubernetes 的最佳选择。目标:编写的 CSI 插件的功能,就是:让我们运行在 DigitalOcean 上的 Kubernetes 集群能够使用它的块存储服务,作为容器的持久化存储。备注:在 Digital转载 2021-08-06 19:43:49 · 689 阅读 · 0 评论 -
Kubernetes 声明式API【2】相知CRD
我们熟悉了Kubernetes 声明式 API 的设计、特点,以及使用方式。下面详细讲解Kubernetes 声明式 API 的工作原理,以及如何利用这套 API 机制,在 Kubernetes 里添加自定义的 API 对象。你可能一直就很好奇:当我把一个 YAML 文件提交给 Kubernetes 之后,它究竟是如何创建出一个 API 对象的呢?这得从声明式 API 的设计谈起了。在 Kubernetes 项目中,一个 API 对象在 Etcd 里的完整资源路径,是由:Group(API 组)、Ve转载 2021-07-27 23:39:59 · 572 阅读 · 2 评论 -
kubernetes dev client-go管理namespace
1. 操作namespace创建查看删除package mainimport ( "flag" "fmt" apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/util/homedir" "path/filepath")fu原创 2021-02-03 11:22:35 · 641 阅读 · 0 评论 -
kubernetes dev client-go管理pvc
文章目录1. 采集并删除pvcgo.modclient.go2. 通过label标签筛选删除pvcgo.modeclient.go测试1. 采集并删除pvcgo.modmodule cronservergo 1.13require ( github.com/imdario/mergo v0.3.8 // indirect github.com/spf13/pflag v1.0.5 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8原创 2021-02-03 11:21:16 · 1470 阅读 · 0 评论 -
kubernetes dev client-go 输出资源
文章目录1.获取pod,pv,pvc,namespace数量并打印go.modclient.go2. 打印pod详细信息1.获取pod,pv,pvc,namespace数量并打印go.modmodule clientgo 1.13require ( github.com/evanphx/json-patch v4.9.0+incompatible // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/原创 2021-02-03 11:18:32 · 742 阅读 · 0 评论 -
kubernetes dev client-go 介绍
文章目录1. 简介2. Setup3. 连接 API Server4. 创建一个clientset5. 获取集群的PVC列表6. 监听集群中pvc6.1 启动监听功能6.2 循环事件6.3 处理ADDED事件6.4 处理DELETED事件6.5 运行程序7. 总结1. 简介go client是k8s client中最古老的一个,具有很多特性。Client-go 没有使用Swagger生成器,它使用的是源于k8s项目中的源代码生成工具,这个工具的目的是要生成k8s风格的对象和序列化程序。该项目是一组包转载 2021-02-03 11:12:59 · 384 阅读 · 0 评论 -
k8s ansible operator SDK入门1
初始化项目$ operator-sdk new memcached-operator --api-version=cache.example.com/v1alpha1 --kind=Memcached --type=ansibleINFO[0000] Creating new Ansible operator 'memcached-operator'. INFO[0000] Created deploy/service_account.yaml INFO[0000] Created原创 2020-12-25 17:38:06 · 440 阅读 · 0 评论 -
go k8s operator logf日志格式化处理详解
文章目录1. 简介2. 默认的Zap记录器3. 示例4. 自定义zap记录器5. 部署到集群时设置标志6. 创建结构化的日志语句7. 非默认日志记录1. 简介操作员SDK生成的操作员使用该logr界面进行记录。此日志界面具有多个后端,例如zap,SDK默认在生成的代码中使用这些后端。logr.Logger公开结构化的日志记录方法,这些方法可帮助创建机器可读的日志并向日志记录添加大量信息。2. 默认的Zap记录器在搭建新项目时,Operator SDK使用zap基于logr后端的后端。为了帮助配置..原创 2020-12-24 11:49:06 · 2065 阅读 · 0 评论 -
kubernetes dev client-go增删改查crd
文章目录1. 示例 CRD2. list 资源3. get 资源4. create 资源5. update 资源6. patch 资源7. delete 资源8. 总结1. 示例 CRDcrd.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata: # name must match the spec fields below, and be in the form: <plural..转载 2020-12-22 18:44:05 · 1960 阅读 · 0 评论 -
kubernetes dev client-go 进入pod执行命令
go.modmodule clientgo 1.13require ( github.com/evanphx/json-patch v4.9.0+incompatible // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 // indirect github.com/golang/protobu原创 2020-12-16 15:05:23 · 2600 阅读 · 2 评论 -
kubernetes Deployment【4】 client-go 管理 deployment
获取pod,pv,pvc,namespace数量并打印go.modmodule clientgo 1.13require ( github.com/evanphx/json-patch v4.9.0+incompatible // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 // indirec原创 2020-11-30 00:35:59 · 2474 阅读 · 0 评论 -
client-go@v0.17.0/tools/clientcmd/validation.go:73:5: cannot use errConfigurationInvalid literal (ty
问题:client-go@v0.17.0/tools/clientcmd/validation.go:73:5: cannot use errConfigurationInvalid literal (type errConfigurationInvalid) as type “k8s.io/apimachinery/pkg/util/errors”.解决方法:require ( k8s.io/apimachinery v0.17.0 k8s.io/client-go v0.17.0)..原创 2020-11-27 18:19:56 · 195 阅读 · 0 评论 -
conversion.go:29:15: scheme.AddConversionFuncs undefined (type *runtime.Scheme has no field or metho
go.moderequire ( k8s.io/client-go v0.17.0)原创 2020-11-27 18:05:49 · 316 阅读 · 0 评论 -
build command-line-arguments: cannot load github.com/googleapis/gnostic/OpenAPIv2: module github.com
go get github.com/googleapis/gnostic@v0.4.0原创 2020-11-27 17:57:17 · 1363 阅读 · 1 评论 -
build command-line-arguments: cannot load k8s.io/api/apiserverinternal/v1alpha1: module k8s.io/api@l
go.moderequire ( k8s.io/api kubernetes-1.13.2 k8s.io/client-go v10.0.0)原创 2020-11-27 17:56:04 · 443 阅读 · 0 评论 -
1. REST简述
REST(Representational State Transfer,表述性状态传递)是由RoyThomas Fielding博士在他的论文Architectural Styles and the Design of Network-based Software Architectures中提出的一个术语。REST本身只是为分布式超媒体系统设计的一种架构风格,而不是标准。基于Web的架构实际上就是各种规范的集合,比如HTTP是一种规范,客户端服务器模式是另一种规范。每当我们在原有规范的基础上增加新的规范原创 2020-11-26 10:24:25 · 338 阅读 · 0 评论 -
go k8s.io/klog包详解
文章目录1. 介绍2. 使用方法3. 实例3.1 输出到文件3.2 输出至终端3.3 输出自定义格式3.4 klog与glog3.5 klogv1与klgov23.6 获取环境变量1. 介绍创建klog的决定并不是一件容易的事,但是由于glog中存在一些缺陷,所以有必要这样做。最终,由于没有积极开发glog而创建了fork。这可以在glog自述文件中看到这使我们无法在没有分叉的情况下解决许多用例。下面列出了需要开发功能的因素:glog 提出了很多“陷阱”,并介绍了容器化环境中的挑战,所有这些都没有原创 2020-11-24 00:12:35 · 8849 阅读 · 0 评论