OpenShift-OKD3.10基础环境部署

单master + 双node

1.主机角色划分

#采用双网段部署  0 网段是opesnshift内部通信IP,1 网段是连接外网通信地址
#master
master.example.com
192.168.0.39   
192.168.1.39

#node1 
node1.example.com
192.168.0.40
192.168.1.40

#node2
node2.example.com
192.168.0.41
192.168.1.41

2.系统初始化 

2.1  开启SELinux

[root@master ~]# cat /etc/sysconfig/selinux 

# 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 three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

2.2  安装基础组件

yum install wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct -y

2.3  更新操作系统

yum  update -y 
reboot

2.4  配置ansible

## install ansible
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sed -i -e "s/^enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo
yum -y --enablerepo=epel install ansible pyOpenSSL

 #checkout install playbooks
 cd ~
 git clone https://github.com/openshift/openshift-ansible
 cd openshift-ansible
 git checkout release-3.10

 2.5 设置SSH免密登录(master -> node)

## ssh 
ssh-keygen
for host in master.example.com \
    master.example.com \
    node1.example.com \
    node2.example.com; \
    do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \
    done

 

3.开始部署

3.1 更新hosts配置文件

[root@master ~]# cat /etc/ansible/hosts
[OSEv3:children]
masters
nodes
etcd
nfs

[OSEv3:vars]
ansible_ssh_user=root
openshift_deployment_type=origin
#因采用虚拟机部署学习 配置此选项跳过主机硬件信息检查 openshift_disable_check
=disk_availability,docker_storage,memory_availability,docker_image_availability openshift_master_identity_providers=[{'name':'htpasswd_auth','login':'true','challenge':'true','kind':'HTPasswdPasswordIdentityProvider',}] openshift_master_default_subdomain=apps.test.example.com openshift_deployment_type=origin os_firewall_use_firewalld=true [masters] master.example.com [etcd] master.example.com [nodes] master.example.com openshift_node_group_name='node-config-master' node1.example.com openshift_node_group_name='node-config-compute' node2.example.com openshift_node_group_name='node-config-compute' [nfs] master.example.com

3.2 执行预安装检测

[root@master ~]# ansible-playbook openshift-ansible/playbooks/prerequisites.yml

3.3 正式安装

[root@master ~]# ansible-playbook openshift-ansible/playbooks/deploy_cluster.yml

4.FAQ 

Q1 Docker HUB下载镜像缓慢导致执行deploy脚本失败##更改docker 的配置文件 /etc/sysconfig/docker

设置国内docker 镜像仓库例如阿里云加速

OPTIONS=' --selinux-enabled=false       --signature-verification=False --registry-mirror=https://c9ojlmr5.mirror.aliyuncs.com'

#需要重启docker
systemctl restart docker

#手动pull master和node使用的images

#master镜像列表

 docker.io/cockpit/kubernetes
 docker.io/openshift/origin-haproxy-router
docker.io/openshift/origin-haproxy-router  
docker.io/openshift/origin-service-catalog

  docker.io/openshift/origin-node
  docker.io/openshift/origin-deployer
  docker.io/openshift/origin-control-plane
  docker.io/openshift/origin-control-plane
  docker.io/openshift/origin-template-service-broker
  docker.io/openshift/origin-pod
  docker.io/cockpit/kubernetes
  docker.io/openshift/origin-web-console
  quay.io/coreos/etcd

  #node镜像列表

  docker.io/openshift/origin-haproxy-router
  docker.io/openshift/origin-node
  docker.io/openshift/origin-deployer
  docker.io/openshift/origin-pod
  docker.io/ansibleplaybookbundle/origin-ansible-service-broker
  docker.io/openshift/origin-docker-registry
  docker-registry.default.svc:5000/openshift/jenkins


Q2 执行deploy时主机dns导致连外网失败

临时解决方案更改/etc/resolv.conf
echo nameserver 114.114.114.114  >>/etc/resolv.conf

 

posted @ 2018-09-01 21:05  Zeyangli  阅读(2872)  评论(0编辑  收藏  举报