openshift部署之前环境准备

openshift部署之前环境准备

准备工作(Prerequisites)

Install stand-alone registry

To install OpenShift Origin as a stand-alone registry, see Installing a Stand-alone Registry.

System Requirements

Master

1. base os: Fedora 21, CentOS 7.3, or RHEL 7.3 with the "Minimal" installation option and the latest packages from the Extras channel, or RHEL Atomic Host 7.3.2 or later. RHEL 7.2 is also supported using Docker 1.12 and its dependencies.

2. 2vcpu

3. Minimum 16 GB RAM

4. Minimum 40 GB hard disk space for the file system containing /var/.

Nodes

1. Physical or virtual system, or an instance running on a public or private IaaS.

2. Base OS: Fedora 21, CentOS 7.3, or RHEL 7.3 or later with "Minimal" installation option, or RHEL Atomic Host 7.3.2 or later. RHEL 7.2 is also supported using Docker 1.12 and its dependencies.

3. NetworkManager 1.0 or later.

4. 1 vCPU.

5. Minimum 8 GB RAM.

6. Minimum 15 GB hard disk space for the file system containing /var/.

7. An additional minimum 15 GB unallocated space to be used for Docker’s storage back end; see Configuring Docker Storage.

External etcd Nodes

1. Minimum 20 GB hard disk space for etcd data.

2. Consult Hardware Recommendations to properly size your etcd nodes.

3. Currently, OpenShift Origin stores image, build, and deployment metadata in etcd. You must periodically prune old resources. If you are planning to leverage a large number of images/builds/deployments, place etcd on machines with large amounts of memory and fast SSD drives.
openshift设置缓存

openshift master 主机节点高速缓存目的是为了缓解CPU负载。然而,在小于1000pod的较小集群中,该缓存可能会浪费大量内存,从而忽略CPU负载的降低。

默认缓存大小为50000个条目,根据资源大小,可以增加到1到2Gb的内存。可以使用/etc/origin/master/master-config.yaml中的以下设置来减少此缓存大小。

1
2
3
4
kubernetesMasterConfig:
apiServerArguments:
deserialization-cache-size:
- "1000"
设置core使用

默认情况下,openshift origin master和node节点使用他们运行系统中的所有内核,你可以通过设置GOMAXPROCS环境变量来选择

我们所希望openshfit使用的内核数;

1
2
# openshift使用1个内核
export GOMAXPROCS=1

SELinux

Security-Enhanced Linux (SELinux)在安装openshit之前必须在所以节点打开(这点好怪,其他的例如openstack要关闭)不然会安装失败。
在 /etc/selinux/config 文件中配置SELINUXTYPE=targeted

1
2
3
4
5
6
7
8
9
10
11
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
NTP

时间同步不用多说,设置openshift_clock_enabled to true打开

1
openshift_clock_enabled to true

DNS

OpenShift Origin在环境中需要一个功能齐全的DNS服务器。 这是理想的运行DNS软件的独立主机,可以为在平台上运行的主机和容器提供名称解析。

    1. 默认情况下,容器从主机收到dns配置文件进行解析(/etc/reslov.conf) contaier dns
    1. openshift origin 将dns值插入到pods(节点的命名空间里面),这个值在/etc/orgin/node/node-config.yaml文件中由
      dnsIP参数定义,dnsIP参数默认设置为主机节点的地址,因为主机使用dnsmasq.
    1. 如果在node-config.yaml文件中忽略dnpIP这个参数,就会默认为kubernetes service ip, 它是该pod的/etc/resolv.conf文件中的第一个名称服务器。

从OpenShift origin 1.2开始, dnsmasq自动配置到所以主节点(master)和节点(node)上。pod使用节点作为它的dns,然后节点接受所有转发请求。
默认情况下,dnsmasq在节点上进行配置监听 53端口, 所以节点不能运行其他的类型的dns应用程序。

节点上需要NetworkManager才能使用DNS IP地址填充dnsmasq.

下面是一个例子

1
2
3
master A 10.64.33.100
node1 A 10.64.33.101
node2 A 10.64.33.102

如果你没有正常运行dns缓解,你下面的操作可能会失败:

  • 通过ansible脚本去安装产品
  • 基础设施容器的部署(registry, routers)
  • 访问OpenShif Origin Web 控制台, 因为它不能通过ip地址单独访问。
配置hosts使用dns

确保您的环境中的每个主机都配置为从DNS服务器解析主机名。主机DNS解析的配置取决于是否启用DHCP。

  • 如果dhcp服务器是禁用的, 应该将您的网络接口配置为静态,并将DNS名称服务器添加到NetworkManager。

  • 如果dhcp服务器是启用的,NetworkManager调度脚本将根据DHCP配置自动配置DNS。或者,您可以在node-config.yaml文件中的dnsIP中添加一个值,以将pod的resolv.conf文件添加到前面。然后,第二个名称服务器由主机的第一个名称服务器定义。默认情况下,这将是节点主机的IP地址。

对于大多数配置,请勿在OpenShift Origin(使用Ansible)高级安装期间设置openshift_dns_ip选项,因为此选项将覆盖由dnsIP设置的默认IP地址。

相反,允许安装程序配置每个节点使用dnsmasq并将请求转发给SkyDNS或外部DNS提供程序。如果您设置了openshift_dns_ip选项,则应该使用首先查询SkyDNS的DNS IP或SkyDNS服务或端点IP(Kubernetes服务IP)进行设置。

验证dns 服务器能够解析hosts

    1. 检查/etc/resolv.conf内容
1
2
3
4
5
$ cat /etc/resolv.conf
# Generated by NetworkManager
search example.com
nameserver 10.64.33.1
# nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh

在这个例子中, 10.64.33.1 就是我们的DNS server.

  • 2.测试/etc/resolv.conf中列出的DNS服务器是否可以将主机名解析为OpenShift Origin环境中所有主节点和IP节点的IP地址
1
2
3
4
5
6
# dig <node_hostname> @<IP_address> +short
$ dig master.example.com @10.64.33.1 +short
10.64.33.100
$ dig node1.example.com @10.64.33.1 +short
10.64.33.101
坚持原创技术分享,您的支持将鼓励我继续创作!