penglongli / blog

18 stars 1 forks source link

Openshift 3.9 安装过程 #124

Open penglongli opened 6 years ago

penglongli commented 6 years ago

OpenShift 3.9 安装过程

环境: 三台 Centos:7 的机器

环境准备

以下工作在三台机器上全都做一遍

修改软件源为阿里的源

[root@node1]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@node1]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装软件包

[root@node1]# yum update -y
[root@node1]# yum install wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct bash-completion.noarch bash-completion-extras.noarch python-passlib NetworkManager java-1.8.0-openjdk-headless -y

安装 Docker 和 Ansible

[root@node1]# yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@node1]# sed -i -e "s/^enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo
[root@node1]# yum -y --enablerepo=epel install ansible pyOpenSSL
[root@node1]# yum install docker-1.13.1 -y
[root@node1]#systemctl enable docker
[root@node1]# systemctl restart docker

下载一些 Image

docker pull docker.io/cockpit/kubernetes:latest
docker pull openshift/origin-deployer:v3.10
docker pull openshift/origin-docker-registry:v3.10
docker pull openshift/origin-pod:v3.10
docker pull openshift/origin-haproxy-router:v3.10

启用 ip_v4 转发、SELinux

启用 ip_v4 转发

sed -i "s,net.ipv4.ip_forward = 0,net.ipv4.ip_forward = 1,g" /etc/sysctl.conf

启用 SELinux

sed -i "s,SELINUX=disabled,SELINUX=enforcing,g" /etc/selinux/config

修改机器名、Hosts 及 ssh-key

修改机器名(依次在三台机器上执行):

[root@node1]# hostnamectl set-hostname node1

修改 Hosts

10.104.179.111 node1
10.104.145.201 node2
10.104.92.38 node3

生成 ssh-key 使得三台机器互通

修改 NetworkManager

编辑 /etc/sysconfig/network-scripts/ifcfg-eth0

....
....
NM_CONTROLLED=yes
PEERDNS=yes
....
....

重启

重启三台机器,并在启动后执行

systemctl restart NetworkManager

安装 OC

克隆 openshift-ansible 代码到 node1

[root@node1]# git clone https://github.com/openshift/openshift-ansible.git
[root@node1]# cd openshift-ansible
[root@node1 openshift-ansible]# git checkout release-3.9
# 由于国内网络问题,替换源
[root@node1 openshift-ansible]# sed -i "s,mirror.centos.org,mirrors.aliyun.com,g" `grep -rn "mirror.centos.org" roles/openshift_repos/templates/ | awk -F":" '{print $1}'`

修改 inventory

[root@node1 openshift-ansible]# vim inventory/hosts

[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]
ansible_ssh_user=root
openshift_deployment_type=origin
openshift_docker_selinux_enabled=False
containerized=False
openshift_release=3.9
osm_cluster_network_cidr=10.128.0.0/14
openshift_portal_net=172.30.0.0/16
osm_host_subnet_length=9
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','filename':'/etc/origin/master/htpasswd'}]
openshift_clock_enabled=true

openshift_metrics_install_metrics=true

[masters]
node1 openshift_schedulable=True
node2 openshift_schedulable=True
node3 openshift_schedulable=True

[nodes]
node1 openshift_schedulable=true openshift_node_labels="{'region': 'infra', 'zone': 'default'}"
node2 openshift_schedulable=true openshift_node_labels="{'region': 'infra', 'zone': 'default'}"
node3 openshift_schedulable=true openshift_node_labels="{'region': 'infra', 'zone': 'default'}"

[etcd]
node1
node2
node3

安装

[root@node1 openshift-ansible]# ansible-playbook -i inventory/hosts playbooks/prerequisites.yml 
[root@node1 openshift-ansible]# ansible-playbook -i inventory/hosts playbooks/deploy_cluster.yml