综合云平台 - OpenShift - 08

安装: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

 

下篇增长永久存储

相关文章
相关标签/搜索