安裝:node
2. 主機環境預配置linux
# 基礎的軟件包git
$ yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct ansible pyOpenSSL docker && yum -y update
# 把 Git 上的源碼 clone 下來, 主要是爲了 ansible-playbookgithub
$ git clone https://github.com/openshift/openshift-ansible
# 這裏新建一塊磁盤, 用於 docker storagedocker
$ cat <<EOF > /etc/sysconfig/docker-storage-setup DEVS=/dev/sdb VG=vg_docker LVM_CREATE_THIN_POOL=yes EOF $ docker-storage-setup
# 啓動 docker daemonjson
$ systemctl enable docker
$ systemctl start docker
# SSH 免密登陸, 爲了 ansiblevim
$ ssh-copy-id root@...
# 預先下載一些部署要用的鏡像, 以避免安裝時由於下載鏡像超時致使失敗centos
$ for i in openshift/origin-{deployer,docker-registry,haproxy-router,pod}:v3.6.1 gscrivano/container-engine:latest cockpit/kubernetes:latest; do docker pull $i; done;
3. Ansible Inventory 配置 bash
$ vim ~/hosts [OSEv3:children] masters nodes etcd lb glusterfs [OSEv3:vars] ansible_ssh_user=root openshift_deployment_type=origin openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}] openshift_master_cluster_method=native openshift_master_cluster_hostname=openshift.joshua.com openshift_master_cluster_public_hostname=openshift.joshua.com openshift_clock_enabled=true os_firewall_use_firewalld=True # memory_availability,disk_availability 這兩個檢查要是不配置成 skip, 那確定 fail, 除非真的按照官網的硬件要求作配置 openshift_disable_check=memory_availability,disk_availability [masters] master[1:3].openshift.joshua.com [etcd] etcd[1:3].openshift.joshua.com [lb] openshift.joshua.com [nodes] master[1:3].openshift.joshua.com node[1:4].openshift.joshua.com
4. 安裝框架
$ ansible-playbook -i ~/hosts ~/openshift-ansible/playbooks/deploy-cluster.yml -f 20 -v
注意:
a. 部署 router 和 docker-registry pod 時, 在 dc 中有 nodeSelector 策略, 會選 zone: infra 的 node, 可是咱們這個框架是沒有 infra zone. 因此要麼更改 dc, 要麼給 node 加上 infra 標籤
# 請注意, 若是給 Master 上 infra 標籤會致使部署失敗, 因此建議仍是改 dc
b. dc/docker-registry 默認 replicas 是0, 因此建立不出來, 能夠改爲1, 也能夠以後配 pvc 的時候再改
c. 網速很差請用 registry-mirror
$ cat /etc/docker/daemon.json {"registry-mirrors": ["http://769bf919.m.daocloud.io"]}
d. 給 docker-registry 加 insecure-registry
$ cat /etc/sysconfig/docker OPTIONS='--insecure-registry=172.30.0.0/16--selinux-enabled --log-driver=journald --signature-verification=false'
e. playbook 中有一處錯誤, 有一個 oc auth reconcile 命令在 3.6.1 中是沒有的
從官網下載 oc 後放到這個目錄下, 把安裝方式從 yum 安裝更改成 copy; 或者等 yum 安裝完用 copy 替換 oc, 這樣子影響比較小
# 更新, yum repo 中添加了 origin-clients-3.7.0, 應該不須要這一步了
$ cat /root/openshift-ansible/playbooks/roles/openshift_cli/tasks/mail.yml
--- - name: Install clients package: name={{ openshift_service_type }}-clients state=present when: not openshift.common.is_containerized | bool register: result until: result | success
- name: Copy OC cli copy: src: oc dest: /usr/bin/oc force: true
f. playbook 會添加 CentOS-OpenShift-Origin.repo 源, 爲了下載速度, 修改爲 aliyun 的 mirror
$ cat ~/openshift-ansible/roles/openshift_repos/templates [centos-openshift-origin] name=CentOS OpenShift Origin baseurl=http://mirrors.aliyun.com/centos/7/paas/x86_64/openshift-origin/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
5. 安裝完成, 沒有 failed
PLAY RECAP *************************************************************************************************************************************************************** etcd1.openshift.joshua.com : ok=95 changed=36 unreachable=0 failed=0 etcd2.openshift.joshua.com : ok=74 changed=27 unreachable=0 failed=0 etcd3.openshift.joshua.com : ok=74 changed=27 unreachable=0 failed=0 localhost : ok=13 changed=0 unreachable=0 failed=0 master1.openshift.joshua.com : ok=556 changed=228 unreachable=0 failed=0 master2.openshift.joshua.com : ok=319 changed=123 unreachable=0 failed=0 master3.openshift.joshua.com : ok=319 changed=123 unreachable=0 failed=0 node1.openshift.joshua.com : ok=154 changed=54 unreachable=0 failed=0 node2.openshift.joshua.com : ok=154 changed=54 unreachable=0 failed=0 node3.openshift.joshua.com : ok=154 changed=54 unreachable=0 failed=0 node4.openshift.joshua.com : ok=154 changed=54 unreachable=0 failed=0 openshift.joshua.com : ok=44 changed=16 unreachable=0 failed=0
6. 驗證
https://openshift.joshua.com:8443
$ oc get nodes
$ oc get pods
下篇增長永久存儲