DEMO:基于Kubernetes的CRD & Go-client 构建的一个查询pod详细信息的示例

蚂蚁金服kubernetes方向招聘

本文是一个示例程序,展示一下如何基于Kubernetes的CRD(Custom Resource Defination)& Go-client构建一个查询Pod详细信息的服务。

该服务运行起来后,可以通过标准的kubernetes api接口,基于CRD来查询某个Pod的详细信息。

代码的地址在:

https://github.com/weiyuanke/PodInfoLookup

首先我们基于配置文件创建一个我们自定义的资源——Testcr

#PodInfoLookup/yaml/testcrd.yaml

#创建了一个名为Testcr的自定义资源类型
#group:stable.example.com
#version:v1
#resource:testcrs
$kubectl apply -f yaml/testcrd.yaml

本文假定本地已经有一个kubernetes集群在运行了,如果没有的话,可以基于minikube安装一个。

#拉取最新代码:
go get github.com/weiyuanke/PodInfoLookup

#启动服务
go run main.go --kubeconfig=/Users/yuankewei/.kube/config

在另外一个终端创建一个pod

kubectl apply -f yaml/pod.yaml 

#服务会监听到pod的创建,同时将该pod的相关信息写入Testcr资源中,
add:  default/nginx

current list:
&{map[kind:Testcr metadata:map[generation:1 name:29b36e2c6835dded8a115aee874d1ddc resourceVersion:113140 selfLink:/apis/stable.example.com/v1/testcrs/29b36e2c6835dded8a115aee874d1ddc uid:a2440f67-9ca4-11e9-9f23-080027f1737d creationTimestamp:2019-07-02T08:37:32Z] spec:map[podip:nginx podkey:a242bc2d-9ca4-11e9-9f23-080027f1737d podname:29b36e2c6835dded8a115aee874d1ddc poduid:] apiVersion:stable.example.com/v1]}

#同理,删除pod,会导致Testrc中对应的资源被删除
kubectl delete -f yaml/pod.yaml 

delete:  default/nginx

current list:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值