HAOJX

HAOJX

杂施而不孙,则坏乱而不修 ; 独学而无友,则孤陋而寡闻

生成config和client的几种写法
第一种 1234567891011121314151617181920212223242526package mainimport ( "context" "fmt" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/client-go/kubernetes" "log")func main() { configFlags:=genericclioptions.NewConfigFlags(true) config,err:=configFla...
强制删除ns
删除ns的脚本 123kubectl get namespace xxx -o json \\|tr -d "\\n"|sed "s/\\"finalizers\\":\\[[^]]\\+\\]/\\"finalizers\\":[]/" \\|kubectl replace --raw /api/v1/namespace/xxx/finalize -f -
reconcile的时候如何判断一个资源是否已经存在
例子 123456789101112131415161718192021222324252627282930313233343536func (d *DelpoyBuilder) Build(ctx context.Context) error { if d.deploy.CreationTimestamp.IsZero(){ d.setOwner().apply() err:=d.cm.Build(ctx) if err != nil { fmt.Println("before create cm error:",err) return...
创建config和clientset
123456789101112131415161718192021222324package libimport ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "log")func InitConfig() *rest.Config{ config,err:=clientcmd.BuildConfigFromFlags("","config") if err != nil { log.Fatal(err) } return...
创建k8s用户账号
创建客户端证书12345678//这一步是生成客户端私钥openssl genrsa -out client.key 2048//根据私钥生成csr, /CN指定了用户名shenyiopenssl req -new -key client.key -out client.csr -subj "/CN=test"//根据k8s的CA证书生成我们用户的客户端证书sudo openssl x509 -req -in client.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateseria...
Operator介绍(1)
Operator Framework是由coreos研发 , 他的github地址是https://github.com/operator-framework 官网: https://coreos.com/operators/ 是一个开源工具箱,用于更高效的、自动化的、支持扩容的管理K8S Native应用程序 目前尚处于alpha阶段,但是由controller-runtime提供的核心API已经比较稳定 Operator是打包、部署、管理K8S应用程序(这里指既部署在K8S上,也通过K8S API或kubectl管理的应用程序)的方法。从概念上说,Operator将运维人员的运维知识...
Operator SDK开发简介
官方的github项目地址: https://github.com/operator-framework/operator-sdk 你可以基于Go/Ansible开发Opearator 。基于Go的典型工作流程如下: 使用SDK的CLI,创建一个新的Operator项目 添加CRD,并定义一个新的资源API 定义监控、调和(reconcile,通过适当的操作让资源接近期望状态)资源的控制器 使用SDK、controller-runtime API来开发调和逻辑 使用SDK CLI来构建、生成Operator的部署清单文件 ##前提条件 dep version v0.5.0+. gi...
Operator介绍(2)---以etcd-operator为例
官方学习文档: https://coreos.com/operators/etcd/docs/0.9.0/user/client_service.html 部署Etcd Operator先将代码拉下来 1git clone https://github.com/coreos/etcd-operator 备份数据 1example/rbac/create_role.sh Install etcd operator1kubectl create -f example/deployment.yaml 这时它会创建自定义资源 , 我们可以看下这个自定义资源 123$ kubectl get cu...
如何级联删除资源
example: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677package buildersimport ( "bytes" "context" dbconfigv1 "github.com/haojianxun/dbcore/pkg/apis/dbconfig/v1" appv1 "k8s.io/api/apps/v1" v1 "k8s.i...
使用临时调试容器来进行调试
使用临时容器来调试的例子你可以使用 kubectl debug 命令来给正在运行中的 Pod 增加一个临时容器。 首先,像示例一样创建一个 pod: 1kubectl run ephemeral-demo --image=k8s.gcr.io/pause:3.1 --restart=Never 说明: 本节示例中使用 pause 容器镜像,因为它不包含调试程序,但是这个方法适用于所有容器镜像。 如果你尝试使用 kubectl exec 来创建一个 shell,你将会看到一个错误,因为这个容器镜像中没有 shell。 12kubectl exec -it ephemeral-demo --...
avatar
HAOJX
It is the first step that costs