Kubernetes上和DNS相关的问题
Conntrack竞争导致的DNS超时
这是一篇译文,原文地址:Racy conntrack and DNS lookup timeouts
最近出现了很多关于K8S中DNS查找超时的BUG报告,某些情况下Pod发起的DNS查找耗时高达5s甚至更久。在这篇文章中我将解释DNS查找延迟的根本原因,讨论缓和此延迟的途径,以及如何修改内核解决此问题。
背景
在K8S中,Pod访问D…
阅读全文
7 years ago
0
Ubuntu的时钟同步
NTP
这是一个网络协议,用于通过网络来同步系统时钟。
在Ubuntu下,你可以使用timedatectl、timedatectl(从16.04开始,用于代替ntpdate / ntp)执行时钟同步,或者安装chrony以成为NTP服务器。
timesyncd默…
阅读全文
7 years ago
0
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作为凭证。参考如下代码:
查询
get
list
通过标签选择器列出:
watch
可以持续监控目标资源的变化:
更新
下面是修改Deployment环境变量定义的例子:
创建
下面代码片断示意了如何创建一个完整的Deployment对象:
扩容
转换为静态类型
动态客户端的CRU…
阅读全文
7 years ago
0
2