在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、创建clientset//获取kubeconfig kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file") //创建config config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) //创建clientset clientset, err := kubernetes.NewForConfig(config) //具体的资源调用见以下例子 二、获取资源1、pod //声明pod对象 var pod *v1.Pod //创建pod pod, err := clientset.CoreV1().Pods(<namespace>).Create(<pod>) //更新pod pod, err := clientset.CoreV1().Pods(<namespace>).Update(<pod>) //删除pod err := clientset.CoreV1().Pods(<namespace>).Delete(<pod.Name>, &meta_v1.DeleteOptions{}) //查询pod pod, err := clientset.CoreV1().Pods(<namespace>).Get(<pod.Name>, &meta_v1.GetOptions{}) //列出pod podList, err := clientset.CoreV1().Pods(<namespace>).List(&meta_v1.ListOptions{}) //watch pod watchInterface, err := clientset.CoreV1().Pods(<namespace>).Watch(&meta_v1.ListOptions{}) 2、pods补充 fmt.Println(pods.Items[1].Name) fmt.Println(pods.Items[1].CreationTimestamp) fmt.Println(pods.Items[1].Labels) fmt.Println(pods.Items[1].Namespace) fmt.Println(pods.Items[1].Status.HostIP) fmt.Println(pods.Items[1].Status.PodIP) fmt.Println(pods.Items[1].Status.StartTime) fmt.Println(pods.Items[1].Status.Phase) fmt.Println(pods.Items[1].Status.ContainerStatuses[0].RestartCount) //重启次数 fmt.Println(pods.Items[1].Status.ContainerStatuses[0].Image) //获取重启时间 //获取NODE fmt.Println("##################") nodes, err := clientset.CoreV1().Nodes().List(metav1.ListOptions{}) fmt.Println(nodes.Items[0].Name) fmt.Println(nodes.Items[0].CreationTimestamp) //加入集群时间 fmt.Println(nodes.Items[0].Status.NodeInfo) fmt.Println(nodes.Items[0].Status.Conditions[len(nodes.Items[0].Status.Conditions)-1].Type) fmt.Println(nodes.Items[0].Status.Allocatable.Memory().String()) 3、deployment //声明deployment对象 var deployment *v1beta1.Deployment //构造deployment对象 //创建deployment deployment, err := clientset.AppsV1beta1().Deployments(<namespace>).Create(<deployment>) //更新deployment deployment, err := clientset.AppsV1beta1().Deployments(<namespace>).Update(<deployment>) //删除deployment err := clientset.AppsV1beta1().Deployments(<namespace>).Delete(<deployment.Name>, &meta_v1.DeleteOptions{}) //查询deployment deployment, err := clientset.AppsV1beta1().Deployments(<namespace>).Get(<deployment.Name>, &meta_v1.GetOptions{}) //列出deployment deploymentList, err := clientset.AppsV1beta1().Deployments(<namespace>).List(&meta_v1.ListOptions{}) //watch deployment watchInterface, err := clientset.AppsV1beta1().Deployments(<namespace>).Watch(&meta_v1.ListOptions{}) 4、service //声明service对象 var service *v1.Service //构造service对象 //创建service service, err := clientset.CoreV1().Services(<namespace>).Create(<service>) //更新service service, err := clientset.CoreV1().Services(<namespace>).Update(<service>) //删除service err := clientset.CoreV1().Services(<namespace>).Delete(<service.Name>, &meta_v1.DeleteOptions{}) //查询service service, err := clientset.CoreV1().Services(<namespace>).Get(<service.Name>, &meta_v1.GetOptions{}) //列出service serviceList, err := clientset.CoreV1().Services(<namespace>).List(&meta_v1.ListOptions{}) //watch service watchInterface, err := clientset.CoreV1().Services(<namespace>).Watch(&meta_v1.ListOptions{}) 5、ingress var ingress *v1beta1.Ingress //构造ingress对象 //创建ingress ingress, err := clientset.ExtensionsV1beta1().Ingresses(<namespace>).Create(<ingress>) //更新ingress ingress, err := clientset.ExtensionsV1beta1().Ingresses(<namespace>).Update(<ingress>) //删除ingress err := clientset.ExtensionsV1beta1().Ingresses(<namespace>).Delete(<ingress.Name>, &meta_v1.DeleteOptions{}) //查询ingress ingress, err := clientset.ExtensionsV1beta1().Ingresses(<namespace>).Get(<ingress.Name>, &meta_v1.GetOptions{}) //列出ingress ingressList, err := clientset.ExtensionsV1beta1().Ingresses(<namespace>).List(&meta_v1.ListOptions{}) //watch ingress watchInterface, err := clientset.ExtensionsV1beta1().Ingresses(<namespace>).Watch(&meta_v1.ListOptions{})
|
请发表评论