轉自:http://www.cnblogs.com/zhangning/p/7251810.html
OpenShift 集群搭建指南
v1.0
-
搭建Hyper-v虛擬機或物理機
-
配置物理機靜態IP,啟用Hyper-v服務。
-
規划服務器節點
節點 |
說明 |
主機名 |
IP |
Master |
主控制節點 |
openshiftmaster.dynastech.com |
192.168.30.95 |
Etcd |
協調服務節點 |
openshiftetcd.dynastech.com |
192.168.30.96 |
Node1 |
計算節點1 |
openshiftnode1.dynsatech.com |
192.168.30.102 |
Node2 |
計算節點2 |
openshiftnode2.dynastech.com |
192.168.30.98 |
Node3 |
計算節點3 |
openshiftnode3.dynastech.com |
192.168.30.110 |
-
新建虛擬機master節點1個
-
新建Etcd節點1或3個(奇數個),負責分布式協調
-
新建Node節點若干,這里示例為3台
-
為每台虛擬機配置 舊版網絡適配器
-
啟動各個虛擬機安裝Centos7系統
校驗並安裝centos linux 7系統
等待校驗完成
-
選擇安裝語言
-
選擇安裝功能
-
軟件選擇
(這里可以選擇桌面版,如下圖,服務器建議最小安裝)
-
安裝位置
-
-
配置網絡和主機名
-
下一步,開始安裝
-
配置root密碼
-
啟動其他節點執行同樣的安裝,配置不同的主機名和網絡地址。
-
安裝完畢
-
配置虛擬機基礎環境
-
我本機是windows安裝Xshell5.
-
配置域名解析
-
修改DNS服務器指向 或者b
-
修改節點本地/etc/hosts文件
這里我為了測試方便,直接修改各個節點hosts文件
用xshell5連接各個節點
進入編輯vi /etc/hosts
開始編輯按insert
編輯完成esc,
保存並退出:wq
強制退出不保存!q
-
-
配置OpenShift 環境依賴軟件
-
所有節點執行:
[root@所有節點 ~]# yum install -y lrzsz git wget net-tools bind-utils iptables-services bridge-utils bash-completion
[root@所有節點 ~]# yum install -y docker
-
檢查安裝情況
-
iptables網絡
[root@openshiftectd ~]# systemctl start iptables
[root@openshiftectd ~]# systemctl enable iptables
-
docker 安裝情況
-
-
軟件安裝完畢后,關閉虛擬機,為每個節點增加一塊硬盤作為docker數據存儲位置
-
增加硬盤完畢,重新啟動所有節點,配置docker存儲位置
-
查看硬盤信息
命令: fdisk -l
如圖所示,添加的數據盤掛載在/dev/sdb目錄下
-
docker配置
-
編輯docker存儲配置位置
[root@所有節點 ~]# vi /etc/sysconfig/docker-storage-setup
-
[root@所有節點 ~]# docker-storage-setup
-
每個節點修改docker鏡像站點
vi /etc/sysconfig/docker
追加參數:
--registry-mirror=https://docker.mirrors.ustc.edu.cn
-
增加docker開機啟動服務
systemctl enable docker
-
啟動docker
systemctl start docker
-
查看docker服務情況
systemctl status docker
-
-
配置OpenShift Etcd節點
[root@openshiftectd ~]# yum install -y etcd
[root@openshiftectd ~]# systemctl enable etcd
[root@openshiftectd ~]# systemctl start etcd
-
配置OpenShift Master節點
-
安裝EPEL倉庫
下載安裝包
http://mirrors.neusoft.edu.cn/epel/7/x86_64/e/
上傳到master
[root@openshiftmaster ~]# yum install -y epel-release-7-10.noarch.rpm
-
安裝ansible pyOpenSSL
[root@openshiftmaster ~]# yum install -y --enablerepo=epel ansible pyOpenSSL
-
配置各個節點和master節點的互信
-
生成密鑰
[root@openshiftmaster ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
-
配置ssh驗證
[root@openshiftmaster ~]# vi /etc/ssh/ssh_config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftmaster.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftetcd.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftnode1.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftnode2.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftnode3.dynastech.com
-
-
下載openshift-ansible源碼
[root@openshiftmaster ~]# git clone https://github.com/openshift/openshift-ansible
-
配置ansible
- 備份hosts
- 編輯hosts
參考:https://docs.openshift.org/latest/install_config/install/advanced_install.html
[root@openshiftmaster ~]# vi /etc/ansible/hosts
添加如下內容
# Create an OSEv3 group that contains the masters and nodes groups
[OSEv3:children]
masters
nodes
etcd
# Set variables common for all OSEv3 hosts
[OSEv3:vars]
# SSH user, this user should allow ssh based auth without requiring a password
ansible_ssh_user=root
# If ansible_ssh_user is not root, ansible_become must be set to true
#ansible_become=true
openshift_deployment_type=origin
# uncomment the following to enable htpasswd authentication; defaults to DenyAllPasswordIdentityProvider
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}]
# host group for masters
[masters]
openshiftmaster.dynastech.com
# host group for etcd
[etcd]
openshiftetcd.dynastech.com
# host group for nodes, includes region info
[nodes]
openshiftmaster.dynastech.com
openshiftnode1.dynastech.com
openshiftnode2.dynastech.com
openshiftnode3.dynsatech.com
-
開始安裝集群
-
運行openshift-ansible
[root@openshiftmaster ~]# ansible-playbook openshift-ansible/playbooks/byo/config.yml
等待運行完成,正常情況已經配置完成。
硬件配置太低會有如下錯誤:
解決此錯誤的方法是編輯/etc/ansible/hosts
加入如下配置,跳過檢查項
由於是運行在pc機上的,硬件配置不夠,我在這里同時將etcd合並到了master節點(即將ectd安裝到master節點並啟動),在配置hosts時,將etcd指向master節點,停用了node3,配置變成如下圖所示
(如果參考者的運行環境,硬件配置可以,這里不必要刪減節點)
再次運行
[root@openshiftmaster ~]# ansible-playbook openshift-ansible/playbooks/byo/config.yml
即成功通過安裝。
安裝成功的匯總信息如下圖
-
檢查運行情況
[root@openshiftmaster ~]# oc get nodes
-
集群賬戶管理
[root@openshiftmaster ~]# htpasswd -b /etc/origin/master/htpasswd admin admin
-
登錄web站點
配置本機hosts文件,將master節點ip指向其主機名
用admin登錄web站點
至此OpenShift集群搭建完畢!開始探索吧………
后記:
此文檔不詳盡處:
- docker在linux中的配置
-
沒有詳細介紹多樣化集群部署,想知道更多參考官方文檔
https://docs.openshift.org/latest/install_config/install/advanced_install.html