forwarder

所属分类:聚类算法
开发工具:GO
文件大小:39KB
下载次数:0
上传日期:2023-03-15 11:40:22
上 传 者sh-1993
说明:  用于以编程方式转发kubernetes集群服务和pod的转发器。
(A forwarder for forwarding kubernetes cluster service and pod programmatically.)

文件列表:
LICENSE (1064, 2023-03-15)
const.go (2001, 2023-03-15)
example (0, 2023-03-15)
example\embedconfig (0, 2023-03-15)
example\embedconfig\main.go (747, 2023-03-15)
example\httpserver (0, 2023-03-15)
example\httpserver\main.go (1457, 2023-03-15)
forwarder.go (5026, 2023-03-15)
forwarder_test.go (878, 2023-03-15)
go.mod (284, 2023-03-15)
go.sum (85300, 2023-03-15)
utils.go (3306, 2023-03-15)

# Forwarder > A forwarder for forwarding kubernetes cluster service and pod programmatically. ## Installation ```bash go get github.com/anthhub/forwarder ``` ## Usage ### forwarding by kubeconfig path ```go import ( "github.com/anthhub/forwarder" ) options := []*forwarder.Option{ { // the local port for forwarding LocalPort: 8080, // the k8s pod port RemotePort: 80, // the forwarding service name ServiceName: "my-nginx-svc", // the k8s source string, eg: svc/my-nginx-svc po/my-nginx-666 // the Source field will be parsed and override ServiceName or RemotePort field Source: "svc/my-nginx-66b6c48dd5-ttdb2", // namespace default is "default" Namespace: "default" }, { // if local port isn't provided, forwarder will generate a random port number // LocalPort: 8081, // // if target port isn't provided, forwarder find the first container port of the pod or service // RemotePort: 80, Source: "po/my-nginx-66b6c48dd5-ttdb2", }, } // it's to create a forwarder, and you need provide a path of kubeconfig // the path of kubeconfig, default is "~/.kube/config" ret, err := forwarder.WithForwarders(context.Background(), options, "./kubecfg") if err != nil { panic(err) } // remember to close the forwarding defer ret.Close() // wait forwarding ready // the remote and local ports are listed ports, err := ret.Ready() if err != nil { panic(err) } // ... // if you want to block the goroutine and listen IOStreams close signal, you can do as following: ret.Wait() ``` ### forwarding embed kubeconfig ```go //go:embed kubeconfig var kubeconfigBytes []byte func main() { options := []*forwarder.Option{ { // LocalPort: 8080, // RemotePort: 80, ServiceName: "my-nginx-svc", }, } // use kubeconfig bytes to config forward ret, err := forwarder.WithForwardersEmbedConfig(context.Background(), options, kubeconfigBytes) if err != nil { panic(err) } // remember to close the forwarding defer ret.Close() // wait forwarding ready // the remote and local ports are listed ports, err := ret.Ready() if err != nil { panic(err) } fmt.Printf("ports: %+v\n", ports) // ... // if you want to block the goroutine and listen IOStreams close signal, you can do as following: ret.Wait() } ``` > If you want to learn more about `forwarder`, you can read example, test cases and source code.

近期下载者

相关文件


收藏者