3.5. 网络连接
网络连接有两个主要网络层:用于节点交互的集群网络,以及用于 Pod 交互的软件定义型网络(SDN)。OpenShift Container Platform 支持多种网络配置,通常针对特定的基础架构提供程序进行了优化。
由于网络的复杂性,本节中并不涵盖所有验证场景。
3.5.1. 在 master 主机上连接
etcd 和 master 主机
Master 服务使用 etcd “键-值”存储来保持其状态同步。master 和 etcd 服务之间的通信非常重要,无论这些 etcd 服务和 master 在同一主机上运行,还是在专业于 etcd 服务的的主机上运行。这个通信在 TCP 端口 2379
和 2380
中发生。如需了解检查此通信的方法,请参阅 Host health 部分。
SkyDNS
SkyDNS
提供在 OpenShift Container Platform 中运行的本地服务的名称解析。此服务使用 TCP
和 UDP
端口 8053
。
验证名称解析:
$ dig +short docker-registry.default.svc.cluster.local 172.30.150.7
如果回答与以下输出结果匹配,SkyDNS
服务可以正常工作:
$ oc get svc/docker-registry -n default NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE docker-registry 172.30.150.7 <none> 5000/TCP 3d
API 服务和 Web 控制台
API 服务和 Web 控制台都共享相同的端口,通常为 TCP
8443
或 443,
具体取决于设置。这个端口需要在集群中可用,且需要与部署的环境合作的人。此端口可以访问的 URL 可能会因内部集群和外部客户端而异。
在以下示例中,https://internal-master.example.com:443
URL 由内部集群使用,外部客户端则使用 https://master.example.com:443
URL。在任何节点主机上:
$ curl -k https://internal-master.example.com:443/version { "major": "1", "minor": "6", "gitVersion": "v1.6.1+5115d708d7", "gitCommit": "fff65cf", "gitTreeState": "clean", "buildDate": "2017-10-11T22:44:25Z", "goVersion": "go1.7.6", "compiler": "gc", "platform": "linux/amd64" }
这必须可从客户端的网络访问:
$ curl -k https://master.example.com:443/healthz ok
确定内部和外部 master URL
以下命令可用于确定内部集群和外部客户端使用的 URL。上例中可以找到 URL 示例。
要确定内部集群 URL:
$ grep masterURL /etc/origin/master/master-config.yaml
要确定外部客户端 URL:
$ grep masterPublicURL /etc/origin/master/master-config.yaml