美文网首页openshift
openshift 3.11安装

openshift 3.11安装

作者: keymanye | 来源:发表于2018-12-21 16:16 被阅读0次

    开源openshift确实很坑人,今天折腾了一天,晚上重新开始,终于有些眉目了!

    本次安装使用环境

    Hostname: master-openshift.example.com IP: 192.168.188.10 OS: centos74 Memory:32G CPU:2
    Hostname: node-openshift.example.com IP: 192.168.188.20 OS: centos74 Memory:32G CPU:2
    Disk1: 200G
    Disk2:50G

    一、 CentOS 7.4安装openshift 3.11参考资料

    主机设置

    • 安装CentOS7.4操作系统,本次选择“基础服务器”
    • 关闭防火墙
    systemctl disable firewalld
    systemctl  stop firewalld
    
    • 将selinux设置为permissive状态
    vim /etc/sysconfig/selinux
    SELINUX=permissive  #设置为permissive
    
    • 设置路由转发
    vim /etc/sysctl.d/91-openshift.conf
            net.ipv4.ip_forward=1
    
    • 执行安装openshift前更新操作系统及安装必要的必要软件(master、node都需要执行)
    192.168.188.10  master-openshift.example.com master 
    192.168.188.20  master-openshift.example.com master 
    
    • 更新操作系统
    yum update -y ;reboot
    
    • 安装软件
    yum install  wget  git  net-tools  bind-utils yum-utils iptables-services bridge-utils \
     bash-completion  kexec-tools sos psacct   ansible pyOpenSSL -y
    

    二、安装docker,所有节点都需要安装docker ,安装完成之后暂不启动docker

    yum -y install  centos-release-openshift-origin311  docker
    #需要在master、node2台机器执行
    yum install  openshift-ansible.noarch -y
    #只需要在master安装
    

    三、配置docker存储,所有节点均需要执行

    • 需要机器上有可用的LVM卷组或者创建卷组
    pvcreate /dev/sdb
    vgcreate vg1  /dev/sdb
    
    • 配置docker存储配置文件/etc/sysconfig/docker-storage-setup
     echo VG=vg1  >> /etc/sysconfig/docker-storage-setup
    
    • 启动docker服务
    systemctl restart docker 
    systemctl enable docker 
    

    -修改docker 镜像源,配置文件/etc/containers/registries.conf

    registries = ['hub-mirror.c.163.com', 'docker.io']
    
    

    -(可选)添加openshift3.11国内软件源

    [centos-openshift-origin311]
    name=CentOS OpenShift Origin
    baseurl=http://buildlogs.centos.org/centos/7/paas/x86_64/openshift-origin311/
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
    
    [centos-openshift-origin311-testing]
    name=CentOS OpenShift Origin Testing
    baseurl=http://buildlogs.centos.org/centos/7/paas/x86_64/openshift-origin311/
    enabled=0
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
    
    [centos-openshift-origin311-debuginfo]
    name=CentOS OpenShift Origin DebugInfo
    baseurl=http://debuginfo.centos.org/centos/7/paas/x86_64/
    enabled=0
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
    
    [centos-openshift-origin311-source]
    name=CentOS OpenShift Origin Source
    baseurl=http://vault.centos.org/centos/7/paas/Source/openshift-origin311/
    enabled=0
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
    

    四、配置SSH无密钥登录,需要在master节点配置

    $ ssh-keygen
    $ ssh-copy-id  root@master-openshift.example.com
    $ ssh-copy-id  root@node-openshift.example.com
    

    五、配置ansible hosts文件,配置如下vim /etc/ansible/hosts

    [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
    openshift_deployment_type=origin
    openshift_image_tag=v3.11
    # If ansible_ssh_user is not root, ansible_become must be set to true
    #ansible_become=true
    
    
    # default selectors for router and registry services
    # openshift_router_selector='node-role.kubernetes.io/infra=true'
    # openshift_registry_selector='node-role.kubernetes.io/infra=true'
    
    # uncomment the following to enable htpasswd authentication; defaults to DenyAllPasswordIdentityProvider
    openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
    openshift_disable_check=memory_availability,disk_availability,docker_image_availability
    
    os_sdn_network_plugin_name=redhat/openshift-ovs-multitenant
    
    # new 2018-11--5 14:40:00
    # 方便访问使用,指定web console 端口为443以及域名
    #openshift_master_api_port=443
    #openshift_master_console_port=443
    openshift_hosted_router_replicas=1
    openshift_hosted_registry_replicas=1
    openshift_master_cluster_hostname=master-openshift.example.com
    openshift_master_cluster_public_hostname=master-openshift.example.com
    openshift_master_default_subdomain=apps.example.com
    
    openshift_master_cluster_method=native
    openshift_public_ip=192.168.188.10
    # false
    ansible_service_broker_install=false
    openshift_enable_service_catalog=false
    template_service_broker_install=false
    openshift_logging_install_logging=false
    
    # registry passwd
    #oreg_url=172.16.37.12:5000/openshift3/ose-${component}:${version}
    #openshift_examples_modify_imagestreams=true
    
    # docker config
    #openshift_docker_additional_registries=172.16.37.12:5000,172.30.0.0/16
    #openshift_docker_insecure_registries=172.16.37.12:5000,172.30.0.0/16
    #openshift_docker_blocked_registries
    openshift_docker_options="--log-driver json-file --log-opt max-size=1M --log-opt max-file=3"
    
    # openshift_cluster_monitoring_operator_install=false
    # openshift_metrics_install_metrics=true
    # openshift_enable_unsupported_configurations=True
    #openshift_logging_es_nodeselector='node-role.kubernetes.io/infra: "true"'
    #openshift_logging_kibana_nodeselector='node-role.kubernetes.io/infra: "true"'
    # host group for masters
    
    [masters]
    master-openshift.example.com
    
    [etcd]
    master-openshift.example.com
    
    [nodes]
    master-openshift.example.com  openshift_node_group_name='node-config-master'
    node-openshift.example.com    openshift_node_group_name='node-config-compute'
    #master-openshift.example.com  openshift_node_group_name='node-config-infra'
    

    六、在master节点执行openshift安装命令

    ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml
    

    七、创建openshift用户,在anisble 清单文件设置openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}],已经将登录验证方式改为http密码,只需要创建用户即可,不需要修改/etc/origin/master/master-config.yaml

    $ htpasswd  -b  htpasswd  admin admin123
    

    八、安装结束

    • 命令行校验
    [root@master-openshift master]# oc get pods
    NAME                           READY     STATUS      RESTARTS   AGE
    php-1-build                     0/1       Completed   0          21m
    php-1-qlndc                    1/1        Running       0          16m
    pythonapp-1-build        0/1       Completed   0          47m
    pythonapp-1-mcs95      1/1       Running       0          36m
    pythonapp-1-rxf47        1/1       Running       0          40m
    [root@master-openshift master]# 
    
    [root@master-openshift master]# oc login https://master-openshift.example.com:8443 -u admin
    Authentication required for https://master-openshift.example.com:8443 (openshift)
    Username: admin
    Password: 
    Login successful.
    You have one project on this server: "pythontraining"
    
    Using project "pythontraining".
    
    [root@master-openshift master]# oc new-project  demo
    Now using project "demo" on server "https://master-openshift.example.com:8443".
    You can add applications to this project with the 'new-app' command. For example, try:
        oc new-app centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.git
    to build a new example application in Ruby.
    
    [root@master-openshift master]# oc new-app  https://github.com/openshift/cakephp-ex.git  --name=demoapp1
    --> Found image 4039444 (2 weeks old) in image stream "openshift/php" under tag "7.1" for "php"
    
        Apache 2.4 with PHP 7.1 
        ----------------------- 
        PHP 7.1 available as container is a base platform for building and running various PHP 7.1 applications and frameworks. PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated web pages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts.
    
        Tags: builder, php, php71, rh-php71
    
        * The source repository appears to match: php
        * A source build using source code from https://github.com/openshift/cakephp-ex.git will be created
          * The resulting image will be pushed to image stream tag "demoapp1:latest"
          * Use 'start-build' to trigger a new build
        * This image will be deployed in deployment config "demoapp1"
        * Ports 8080/tcp, 8443/tcp will be load balanced by service "demoapp1"
          * Other containers can access this service through the hostname "demoapp1"
    
    --> Creating resources ...
        imagestream.image.openshift.io "demoapp1" created
        buildconfig.build.openshift.io "demoapp1" created
        deploymentconfig.apps.openshift.io "demoapp1" created
        service "demoapp1" created
    --> Success
        Build scheduled, use 'oc logs -f bc/demoapp1' to track its progress.
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose svc/demoapp1' 
        Run 'oc status' to view your app.
    [root@master-openshift master]# oc logs -f bc/demoapp1
    Cloning "https://github.com/openshift/cakephp-ex.git" ...
        Commit: c1b7cdc5ff9bc1f04ef3a3bda896d9b1456e0204 (Merge pull request #107 from liangxia/url)
        Author: Honza Horak <hhorak@redhat.com>
        Date:   Mon Oct 15 10:09:08 2018 +0200
    Using docker-registry.default.svc:5000/openshift/php@sha256:0940fdfa498704074783a9c5bda2f27c1b24b288357f27278c1824e2e025895a as the s2i builder image
    ---> Installing application source...
    Found 'composer.json', installing dependencies using composer.phar...
    Downloading https://getcomposer.org/installer, attempt 1/6
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  257k  100  257k    0     0  67134      0  0:00:03  0:00:03 --:--:-- 67130
    All settings correct for using Composer
    Downloading...
    Composer (version 1.8.0) successfully installed to: /opt/app-root/src/composer.phar
    Use it: php composer.phar
    Loading composer repositories with package information
    Installing dependencies (including require-dev) from lock file
    Package operations: 74 installs, 0 updates, 0 removals
      - Installing cakephp/plugin-installer (1.1.0): Downloading (100%)
      - Installing aura/intl (3.0.0): Downloading (100%)
      - Installing symfony/yaml (v3.4.8): Downloading (100%)
      - Installing symfony/polyfill-mbstring (v1.7.0): Downloading (100%)
      - Installing psr/log (1.0.2): Downloading (100%)
      - Installing symfony/debug (v3.4.8): Downloading (100%)
      - Installing symfony/console (v3.4.8): Downloading (100%)
      - Installing symfony/filesystem (v3.4.8): Downloading (100%)
      - Installing symfony/config (v3.4.8): Downloading (100%)
      - Installing robmorgan/phinx (v0.8.1): Downloading (100%)
      - Installing psr/http-message (1.0.1): Downloading (100%)
    ....(此处省略)
    > Cake\Composer\Installer\PluginInstaller::postAutoloadDump
    > App\Console\Installer::postInstall
    Created `/opt/app-root/src/logs` directory
    Created `/opt/app-root/src/tmp` directory
    Created `/opt/app-root/src/tmp/cache` directory
    Created `/opt/app-root/src/tmp/cache/models` directory
    Created `/opt/app-root/src/tmp/cache/persistent` directory
    Created `/opt/app-root/src/tmp/cache/views` directory
    Created `/opt/app-root/src/tmp/sessions` directory
    Created `/opt/app-root/src/tmp/tests` directory
    Permissions set on /opt/app-root/src/tmp/cache
    Permissions set on /opt/app-root/src/tmp/cache/models
    Permissions set on /opt/app-root/src/tmp/cache/persistent
    Permissions set on /opt/app-root/src/tmp/cache/views
    Permissions set on /opt/app-root/src/tmp/sessions
    Permissions set on /opt/app-root/src/tmp/tests
    Permissions set on /opt/app-root/src/tmp
    Permissions set on /opt/app-root/src/logs
    No Security.salt placeholder to replace.
    => sourcing 20-copy-config.sh ...
    ---> 08:10:11     Processing additional arbitrary httpd configuration provided by s2i ...
    => sourcing 00-documentroot.conf ...
    => sourcing 50-mpm-tuning.conf ...
    => sourcing 40-ssl-certs.sh ...
    Pushing image docker-registry.default.svc:5000/demo/demoapp1:latest ...
    Pushed 0/10 layers, 1% complete
    Pushed 1/10 layers, 12% complete
    Pushed 2/10 layers, 20% complete
    Push successful
    
    
    [root@master-openshift master]# oc get pods
    NAME               READY     STATUS      RESTARTS   AGE
    demoapp1-1-564m8   1/1       Running     0          3m
    demoapp1-1-build   0/1       Completed   0          9m
    
    [root@master-openshift master]# oc get dc
    NAME       REVISION   DESIRED   CURRENT   TRIGGERED BY
    demoapp1   1          1         1         config,image(demoapp1:latest)
    
    [root@master-openshift master]# oc scale --replicas=10 dc demoapp1
    deploymentconfig.apps.openshift.io/demoapp1 scaled
    
    [root@master-openshift master]# oc get pods
    NAME               READY     STATUS      RESTARTS   AGE
    demoapp1-1-564m8   1/1       Running     0          3m
    demoapp1-1-7twmv   1/1       Running     0          9s
    demoapp1-1-bh8jg   1/1       Running     0          9s
    demoapp1-1-build   0/1       Completed   0          9m
    demoapp1-1-dbbz7   1/1       Running     0          9s
    demoapp1-1-kpb4w   1/1       Running     0          9s
    demoapp1-1-kvf76   1/1       Running     0          9s
    demoapp1-1-m84nf   1/1       Running     0          9s
    demoapp1-1-mw2bd   1/1       Running     0          9s
    demoapp1-1-p5l7w   1/1       Running     0          9s
    demoapp1-1-xbxz6   1/1       Running     0          9s
    
    [root@master-openshift master]# oc scale --replicas=2 dc demoapp1
    deploymentconfig.apps.openshift.io/demoapp1 scaled
    
    [root@master-openshift master]# oc get pods
    NAME               READY     STATUS        RESTARTS   AGE
    demoapp1-1-564m8   1/1       Running       0          3m
    demoapp1-1-bh8jg   0/1       Terminating   0          22s
    demoapp1-1-build   0/1       Completed     0          9m
    demoapp1-1-dbbz7   1/1       Terminating   0          22s
    demoapp1-1-kpb4w   0/1       Terminating   0          22s
    demoapp1-1-kvf76   1/1       Running       0          22s
    demoapp1-1-mw2bd   0/1       Terminating   0          22s
    demoapp1-1-xbxz6   0/1       Terminating   0          22s
    
    
    [root@master-openshift master]# oc get pods
    NAME               READY     STATUS      RESTARTS   AGE
    demoapp1-1-564m8   1/1       Running     0          4m
    demoapp1-1-build   0/1       Completed   0          9m
    demoapp1-1-kvf76   1/1       Running     0          31s
    
    

    相关文章

      网友评论

        本文标题:openshift 3.11安装

        本文链接:https://www.haomeiwen.com/subject/quiukqtx.html