k8s使用client-go调用遇到的问题
简单demo
package mainimport (
"context"
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"
"log"
)func main(){
kubeconfig := "config/kube.conf"//来自集群中的conf
config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
if err != nil {
panic(err)
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err)
}
deployments := clientset.AppsV1().Deployments(apiv1.NamespaceDefault)
list, err := deployments.List(context.TODO(), metav1.ListOptions{})
if err != nil {
panic(err)
}
for _, d := range list.Items {
log.Printf("* %s (%d replicas ) %s \n ",d.Name,*d.Spec.Replicas,d.Namespace)
}namespaceList, err := clientset.CoreV1().Namespaces().List(context.TODO(), metav1.ListOptions{})
if err != nil {
log.Fatal("namespace error",err)
panic(err)
}
for _,namespace := range namespaceList.Items {log.Println(namespace.Name,namespace.CreationTimestamp)
}
}
官方参考 https://github.com/kubernetes...
文章图片
遇到的问题 1.拉取镜像失败
文章图片
可以delete deployment然后重新apply,也可以在对应机器上手动拉下,如果使用私有镜像仓库,可能就没有这个问题
2.修改master node名称
暂时没有想到解决方法,我是重新部署整个集群之前把机器的名字改掉了
3.~/.kube/下没有config信息
【k8s使用client-go调用遇到的问题】master上面没有,别的node上有,可以查看一下
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小