如何使用Kubernetes Go库创建简单的客户端应用程序? [英] How can I create a simple client app with the Kubernetes Go library?

查看:107
本文介绍了如何使用Kubernetes Go库创建简单的客户端应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在努力与Kubernetes Go图书馆合作。文档 - 至少我找到的 - 显示出来与图书馆本身的最新日期。提供的示例不会因为导入问题而生成。我只是试图做一些简单的事情:按名称获取Service对象并打印一些属性(如nodePort)。我只需要一个简单的库用法示例就可以让我开始使用。



我可以使用RESTful API轻松完成此操作,但感觉就像重新发明了轮子。 p>

解决方案

所以经过一些实验和k8s Slack频道的提示后,我就有了这个例子。也许有人可以用适当的导入路径更新示例。

 包主

导入(
fmt
log

github.com/kubernetes/kubernetes/pkg/api
客户端github.com/kubernetes/kubernetes/pkg/client / unversioned


func main(){

config:= client.Config {
Host:http:// my-kube -api-server.me:8080,
}
c,err:= client.New(& config)
if err!= nil {
log.Fatalln(无法连接到Kubernetes API:,err)
}
$ bs,err:= c.Services(api.NamespaceDefault).Get(some-service-name)
if err!= nil {
log.Fatalln(Can not get service:,err)
}
fmt.Println(Name:,s.Name)
for p,_:= range s.Spec.Ports {
fmt.Println(Port:,s.Spec.Ports [p] .Port)
fmt.Println(NodePort :,s.Spec.Ports [p] .NodePort)
}
}


I'm struggling with the Kubernetes Go library. The docs--at least the ones I found--appear out-of-date with the library itself. The example provided does not build because of issues with the imports. I'm just trying to do something simple: get a Service object by name and print some attributes (like nodePort). I just need a simple example of library usage to get me going.

I could easily do this using the RESTful API but that feels like re-inventing the wheel.

解决方案

So after a little experimentation and a hint from the k8s Slack channel, I have this example. Perhaps someone can update the example with a proper import path.

package main

import (
    "fmt"
    "log"

    "github.com/kubernetes/kubernetes/pkg/api"
    client "github.com/kubernetes/kubernetes/pkg/client/unversioned"
)

func main() {

    config := client.Config{
        Host: "http://my-kube-api-server.me:8080",
    }
    c, err := client.New(&config)
    if err != nil {
        log.Fatalln("Can't connect to Kubernetes API:", err)
    }

    s, err := c.Services(api.NamespaceDefault).Get("some-service-name")
    if err != nil {
        log.Fatalln("Can't get service:", err)
    }
    fmt.Println("Name:", s.Name)
    for p, _ := range s.Spec.Ports {
        fmt.Println("Port:", s.Spec.Ports[p].Port)
        fmt.Println("NodePort:", s.Spec.Ports[p].NodePort)
    }
}

这篇关于如何使用Kubernetes Go库创建简单的客户端应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆