Kuberentes客户端编程
1 2 3 4 5 6 7 8 9 |
import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/kubernetes" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/api/errors" ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var ( masterURL string kubeConfig string ) func main() { flag.StringVar(&masterURL, "master-url", "", "URL of kubernetes master") flag.StringVar(&kubeConfig, "kube-config", "", "Kubernetes configuration file location") flag.Parse() // 构建配置信息 cfg, err := clientcmd.BuildConfigFromFlags(masterURL, kubeConfig) if err != nil { log.Fatalf("Invalid arguments: %s", err.Error()) } // 创建API集 clientset, err := kubernetes.NewForConfig(cfg) if err != nil { log.Fatalf("Failed to connect to api server: %s", err.Error()) } } |
在Pod中访问API Server,可以使用集群授予的ServiceAccount作为凭证。参考如下代码:
通过标签选择器列出:
可以持续监控目标资源的变化:
下面是修改Deployment环境变量定义的例子:
下面代码片断示意了如何创建一个完整的Deployment对象:
动态客户端的CRU…
阅读全文Prometheus学习笔记
Prometheus是一个开源监控系统,它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。
Prometheus的主要特性包括:
- 多维度数据…
基于Rook的Kubernetes存储方案
Rook是专用于Cloud-Native环境的文件、块、对象存储服务。它实现了一个自我管理的、自我扩容的、自我修复的分布式存储服务。
Rook支持自动部署、启动、配置、分配(provisioning)、扩容/缩容、升级、迁移、灾难恢复、监控,以及资源管理…
阅读全文基于Calico的CNI
Calico为容器或虚拟机提供安全的网络连接,它创建一个扁平化的第3层网络,为每个节点分配一个可路由的IP地址。网络中的节点不需要NAT或IP隧道就可以相互通信,因此性能很好,接近于物理网络,不使用网络策略的情况下,可能引入0.01毫秒级…
阅读全文使用Grafana展示时间序列数据
Grafana是一个独立运行的系统,内置了Web服务器。它可以基于仪表盘的方式来展示、分析时间序列数据。
Grafana支持多种数据源,例如:Graphite、OpenTSDB、InfluxDB、Elasticsearch。你可以混合使用多种数据源。它对…
阅读全文Kubernetes学习笔记
Kubernates(发音 / kubə'neitis /,简称K8S)是一个容器编排工具,使用它可以自动化容器的部署、扩容、管理。使用K8S可以将应用程序封装为容易管理、发现的逻辑单元。使用K8S你可以打造完全以容器为中心的开发环境。
K8…
阅读全文