• 综合云平台


    安装:

    2. 主机环境预配置

    # 基础的软件包

    $ 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-playbook

    $ git clone https://github.com/openshift/openshift-ansible

    # 这里新建一块磁盘, 用于 docker storage

    $ cat <<EOF > /etc/sysconfig/docker-storage-setup
    DEVS=/dev/sdb
    VG=vg_docker
    LVM_CREATE_THIN_POOL=yes
    EOF
    
    $ docker-storage-setup

    # 启动 docker daemon

    $ systemctl enable docker
    $ systemctl start docker

    # SSH 免密登录, 为了 ansible

    $ ssh-copy-id root@...

    # 预先下载一些部署要用的镜像, 以免安装时因为下载镜像超时导致失败

    $ 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 配置

    $ 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

    下篇增加永久存储

  • 相关阅读:
    phpexcel读取excel文件
    laravel的表单验证(下面有些信息未验证,转的)
    Laravel框架学习(Response)
    laravel文件存储Storage
    Laravel 5 教程
    js中substring和substr的用法
    jquery 规范
    总结oninput、onchange与onpropertychange事件的用法和区别
    jquery 选择器的总结
    jquery选择器中的find和空格,children和>的区别、及父节点兄弟节点,还有判断是否存在的写法
  • 原文地址:https://www.cnblogs.com/joshuapu/p/8028975.html
Copyright © 2020-2023  润新知