可以用client-go中的方法 其中每个资源都有个一个restclient方法 下面的body方法就是发送body内容给server 最后跟上do即可
伪代码
1informer.core().v1().pod().restclient().body().do()
JSONPatch的详细说明请参考文档:http://jsonpatch.com/。JSONPatch 主要有三种操作方式:add,replace,remove。以下会以代码示例说明这三种操作在Client-go对应的代码示例来说明怎样操作K8s 的资源。
使用JSONPatch,如果Patch中带有斜杠“/”和 (~)这两个字符,不能直接传入这两个字符,需要你输入的时候就人工转换下,/转换成~1,~转换成~0。以新增labels为例,如我要新增一个”test1/test2”:”test3”的labels,可以把要传入的数据修改为”test1~1test2”:”test3”即可。
a...
当搞完controllerManager之后 builder.ControllerManagedBy(mgr) 就搞个监听 当删除的时候就调用删除函数
比如如下套路
1234567builder.ControllerManagedBy(mgr). For(&v1.DbConfig{}). Watches(&source.Kind{Type: &appsv1.Deployment{}}, handler.Funcs{DeleteFunc: dbConfigController.OnDel...
例子
123456789101112func IsCurrentRsBydep(dep *appsv1.Deployment,rs *appsv1.ReplicaSet) bool{ if rs.ObjectMeta.Annotations["deployment.kubernetes.io/revision"]!=dep.ObjectMeta.Annotations["deployment.kubernetes.io/revision"]{ return false } for _, ref:= range rs.OwnerReferences...
1kubectl get secret $(kubectl get sa mysa -o json | jq -Mr '.secrets[0].name' ) -o json | jq -Mr '.data.token' | base64 -d
上面的命令中
12//取到sa的secrets的namekubectl get sa mysa -o json | jq -Mr '.secrets[0].name'
之后就可以访问了
1curl -H "Authorization: Bearer $mysatoken" --insecure <https://192.168.0....
先生成token并加入config文件中12345//先随机生成一个tokenhead -c 16 /dev/urandom | od -An -t x | tr -d ' '//把他加入到config里面去 其中shenyi是那个ua 也就是用户kubectl config set-credentials shenyi --token=4e2f6f4250a43ce94426b6264dad2609
修改api-server的启动参数1234567891011//先创建一个文件, 这个文件名称随便写sudo vi /etc/kubernetes/pki/token_auth//之后...
先在type中定义一个event
1234type xxxx struct{ ... E record.EventRecorder //记录日志}
当资源变更了 可以使用他来记录
1r.E.Evnet(config,corev1.EventTypeNormal,reason:"初始化dep",message:"成功")
如何调用呢
123456789101112list:=corev1.EventList{}//这个client是脚手架里面那个client也就是"sigs.k8s.io/controller-runtime/pkg/clien...
例子1
1234567891011//根据label批量删除pod labelPod := labels.SelectorFromSet(labels.Set(map[string]string{generalLabelKey: redisClusterName})) listPodOptions := metav1.ListOptions{ LabelSelector: labelPod.String(), } err = kubeClient.CoreV1().Pods(redisClusterNamesp...
example
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package k8sconfigimport ( v1 "github.com/haojianxun/dbcore/pkg/apis/dbconfig/v1" "github.com/haojianxun/dbcore/pkg/controllers" "github.com/haojianxun/dbcore/pkg/dashboard" appsv1 "k8s.io/api/apps...
第一步先创建一个dynamic client
123456789101112131415161718192021222324252627282930313233package kubeConfigimport ( "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "log")func InitConfig() *rest.Config { config, err := clientcmd.Build...