[k8s系列六]K8S网络补充之DNS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[k8s系列六]K8S网络补充之DNS相关的知识,希望对你有一定的参考价值。
参考技术A 前面两章介绍了service和ingress,service有Cluster IP和Node Port两种类型:但实际上,集群内部一般不直接用Cluster IP,而是用service名作为域名,通过Core DNS组件做一次域名解析后得到cluster IP。跨集群一般也不用nodePort,而是走Ingress ,或者loadbalance service。
DNS(Domain Name System) 用于将域名解析成IP地址,例如
Kubernetes 早期的 DNS 组件叫 KubeDNS。CNCF 社区后来引入了更加成熟的开源项目 CoreDNS 替换了 KubeDNS。所以我们现在提到 KubeDNS,其实默认指代的是 CoreDNS 项目。
集群中的每一个 Service(包括 DNS 服务本身)都将被分配一个 DNS name。格式为:<service_name>.<namespace>.svc.<cluster_domain>。cluster_domain默认为cluster.local。
每一个Pod创建时,都会在Pod的/etc/resolv.conf文件中,自动加入kube-dns service的domain name与相对应的IP地址。因此Pods可以透过名为kube-dns的service组件,找到正在运行的kube-dns。
根据附录1创建dnsutils pod,并按照DNS格式,尝试解析kube-dns(kube-system命名空间)和whoami-clusterip(default命名空间)。然后查看pod的域名解析文件/etc/resolv.conf中的内容,最后尝试在通过域名+端口号访问whoami-clusterip服务。
R中的多变量K-S检验
【中文标题】R中的多变量K-S检验【英文标题】:Multivariate K-S test in R 【发布时间】:2015-10-12 08:13:10 【问题描述】:因此,我们可以运行 K-S 测试来评估 dtwo 数据集的分布是否存在差异,如 here 所述。
让我们获取以下数据
set.seed(123)
N <- 1000
var1 <- runif(N, min=0, max=0.5)
var2 <- runif(N, min=0.3, max=0.7)
var3 <- rbinom(n=N, size=1, prob = 0.45)
df <- data.frame(var1, var2, var3)
然后我们可以根据 var3 结果分开
df.1 <- subset(df, var3 == 1)
df.2 <- subset(df, var3 == 0)
现在我们可以运行 Kolmogorov-Smirnov 检验来检验每个单独变量的分布差异。
ks.test(jitter(df.1$var1), jitter(df.2$var1))
ks.test(jitter(df.1$var2), jitter(df.2$var2))
不出所料,我们没有发现差异,可以假设不同的数据集来自相同的分布。这可以通过以下方式可视化:
plot(ecdf(df.1$var1), col=2)
lines(ecdf(df.2$var1))
plot(ecdf(df.1$var2), col=3)
lines(ecdf(df.2$var2), col=4)
但是现在我们想考虑var3==0
和var3==1
之间的分布是否在我们同时考虑var1
和var2
时不同。
当我们有多个预测变量时,是否有一个 R 包可以运行这样的测试
here提出了类似的问题,但没有得到任何答复
似乎有一些文献: Example 1 Example 2
但似乎没有任何东西与 R 相关
【问题讨论】:
这个问题似乎是题外话,因为它是关于统计的,而不是真正的特定编程问题。也许最好在Cross Validated 上问这个问题 【参考方案1】:Peacock, J. A. (1983) 中讨论了二维 KS 检验。天文学中的二维拟合优度检验。皇家天文学会月报,202(3),615–627。 https://doi.org/10.1093/mnras/202.3.615
有一个实现,https://cran.r-project.org/web/packages/Peacock.test/
【讨论】:
以上是关于[k8s系列六]K8S网络补充之DNS的主要内容,如果未能解决你的问题,请参考以下文章