Thursday, September 4, 2014

Platform as a service (PaaS)

  • Minishift is a tool that helps you run OpenShift locally by launching a single-node OpenShift cluster inside a virtual machine. With Minishift you can try out OpenShift or develop with it, day-to-day, on your local machine.

  • https://www.openshift.org/minishift/

  • OpenShift Online is Red Hat’s public cloud application development and hosting service. On-Demand Access.

  •     OpenShift Dedicated is Red Hat’s managed private cluster offering for Enterprises. Own OpenShift cluster + operated by Red Hat.
        OpenShift Container Platform  is Red Hat’s on-premise private PaaS product. Whether it’s on premise in customer data center or private cloud.

    OpenShift Origin is the upstream community project used in OpenShift Online, OpenShift Dedicated, and OpenShift Container Platform.

    There are 3 quick installation methods:
        1Running in a Container (from DockerHub) – Only for Red Hat based distributions, RHEL, Fedora and CentOS.
        2Download a Binary (GitHub). This is an all-in-one version. Pay attention with this option, because versions for Windows and Mac are limited.
    3Building from source, locally or using Vagrant.

        Minishift is an upstream community project that is intended for OpenShift Origin. Minishift is a tool that helps you run OpenShift locally by launching a single-node OpenShift Origin cluster inside a virtual machine.


    https://blog.novatec-gmbh.de/getting-started-minishift-openshift-origin-one-vm/


  • Openshift Origin is the upstream community project that builds up OpenShift platform. Openshift origin is built around a core of Docker container, using Kubernetes for cluster containers orchestration. Openshift origin includes also a functional Web application and a CLI interface to build up and manage your applications.
  • http://www.mastertheboss.com/soa-cloud/openshift/openshift-installation-quick-tutorial

  • Docker and OpenShift Origin must run on the Linux operating system.

  • If you wish to run the server from a Windows or Mac OS X host, you should start a Linux VM first.
     
    OpenShift Origin and Docker use iptables to manage networking.
    Ensure that local firewall rules and other software making iptable changes do not alter the OpenShift Origin and Docker service setup.

    Installation Methods
    Method 1: Running in a Container

    https://docs.openshift.org/latest/getting_started/administrators.html

  • Minimum Hardware Requirements


  • OpenShift Origin only supports servers with the x86_64 architecture.

    Masters
    Physical or virtual system, or an instance running on a public or private IaaS.
    Base OS: Fedora 21, CentOS 7.3, RHEL 7.3, or RHEL 7.4 with the "Minimal" installation option and the latest packages from the Extras channel, or RHEL Atomic Host 7.3.6 or later.
    2 vCPU.
    Minimum 16 GB RAM.
    Minimum 40 GB hard disk space for the file system containing /var/.
    Minimum 1 GB hard disk space for the file system containing /usr/local/bin/.
    Minimum 1 GB hard disk space for the file system containing the system’s temporary directory


    Nodes
    Physical or virtual system, or an instance running on a public or private IaaS.
    Base OS: Fedora 21, CentOS 7.3, RHEL 7.3, or RHEL 7.4 with "Minimal" installation option, or RHEL Atomic Host 7.3.6 or later.
    NetworkManager 1.0 or later.
    1 vCPU.
    Minimum 8 GB RAM.
    Minimum 15 GB hard disk space for the file system containing /var/.
    Minimum 1 GB hard disk space for the file system containing /usr/local/bin/.
    Minimum 1 GB hard disk space for the file system containing the system’s temporary directory
    An additional minimum 15 GB unallocated space to be used for Docker’s storage back end


    External etcd Nodes
    Minimum 20 GB hard disk space for etcd data.

    Configuring Core Usage
    For example, run the following before starting the server to make OpenShift Origin only run on one core:
    # export GOMAXPROCS=1
    Alternatively, if you plan to run OpenShift in a container, add -e GOMAXPROCS=1 to the docker run command when launching the server.

    SELinux
    Security-Enhanced Linux (SELinux) must be enabled on all of the servers before installing OpenShift Origin or the installer will fail. Also, configure SELINUXTYPE=targeted in the /etc/selinux/config file:
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted

    NTP
    You must enable Network Time Protocol (NTP) to prevent masters and nodes in the cluster from going out of sync.
    Set openshift_clock_enabled to true in the Ansible playbook to enable NTP on masters and nodes in the cluster during Ansible installation.
    # openshift_clock_enabled=true

    Environment Requirements
    Adding entries into the /etc/hosts file on each host is not enough. This file is not copied into containers running on the platform.

    Key components of OpenShift Origin run themselves inside of containers and use the following process for name resolution:
    By default, containers receive their DNS configuration file (/etc/resolv.conf) from their host.
    OpenShift Origin then inserts one DNS value into the pods (above the node’s nameserver values). That value is defined in the /etc/origin/node/node-config.yaml file by the dnsIP parameter, which by default is set to the address of the host node because the host is using dnsmasq
    If the dnsIP parameter is omitted from the node-config.yaml file, then the value defaults to the kubernetes service IP, which is the first nameserver in the pod’s /etc/resolv.conf file.

    DNSMSQ must be enabled (openshift_use_dnsmasq=true) or the installation will fail and critical features will not function


    The following is an example set of DNS records for the Single Master and Multiple Nodes scenario:

    master    A   10.64.33.100
    node1     A   10.64.33.101
    node2     A   10.64.33.102

    Configuring Hosts to Use DNS
    The configuration for hosts' DNS resolution depend on whether DHCP is enabled.

    If DHCP is:
    Disabled, then configure your network interface to be static, and add DNS nameservers to NetworkManager.

    If DHCP is:
    Enabled, then the NetworkManager dispatch script automatically configures DNS based on the DHCP configuration.

    To verify that hosts can be resolved by your DNS server:
    Check the contents of /etc/resolv.conf:
    $ cat /etc/resolv.conf
    # Generated by NetworkManager
    search example.com
    nameserver 10.64.33.1
    # nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh

    Test that the DNS servers listed in /etc/resolv.conf are able to resolve host names to the IP addresses of all masters and nodes in your OpenShift Origin environment:
    $ dig <node_hostname> @<IP_address> +short
    $ dig master.example.com @10.64.33.1 +short
    10.64.33.100
    $ dig node1.example.com @10.64.33.1 +short
    10.64.33.101


    Configuring a DNS Wildcard
    Optionally, configure a wildcard for the router to use, so that you do not need to update your DNS configuration when new routes are added.


    https://docs.openshift.org/latest/install_config/install/prerequisites.html#install-config-install-prerequisites

  • To simplify the task of setting up and operating containers, the use of a container management tool is essential. These solutions, known as container orchestration tools, help operations staff decide where to run containers, how to run them in production, and which systems to put them on

  • OpenShift, Red Hat’s PaaS solution for enterprise applications, uses Docker and Kubernetes as its underlying container management engines. OpenShift is a powerful resource for orchestrating containerization at the enterprise level.

    The OpenShift Online Starter plan, which can handle one project, is free.

    Docker is the leading provider of containerization tools.
    Docker has helped foster the DevOps revolution by facilitating collaboration between developers and operators, accelerating the process of creating and deploying applications.
    Kubernetes is a container orchestration engine.
    It offers an open source platform to manage the deployment and use of containers across your IT infrastructure.
    https://shadow-soft.com/open-source-container-management-tools/

  • OpenShift Online has been completely rewritten, enabling you to rapidly build and deploy Docker images and manage them on a robust, scalable platform. The power of Docker containers and the Kubernetes container cluster manager optimized for enterprise app development and deployment.OpenShift is Red Hat's Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment.
https://www.openshift.com

  • Source-to-Image (S2I) is a toolkit and workflow for building reproducible Docker images from source code.
S2I produces ready-to-run images by injecting source code into a Docker container and letting the container prepare that source code for execution.
By creating self-assembling builder images, you can version and control your build environments exactly like you use Docker images to version your runtime environments.
https://github.com/openshift/source-to-image

  • OpenShift is designed to run any existing Docker images. Additionally, you can define builds that will produce new Docker images using a Dockerfile.
https://github.com/openshift/origin

  • Source-to-Image (S2I) is a mechanism for building custom Docker images. It produces ready-to-run images by injecting application source into a Docker image and assembling a new Docker image. The new image incorporates the base image and built source

So let's say you want to load the image "openshift/wildfly-100-centos7" and produce a new image using the source code available on https://github.com/fmarchioni/mastertheboss in the folder "openshift-demo"
(Have a look at the application here: https://github.com/fmarchioni/mastertheboss/tree/master/openshift-demo)
http://www.mastertheboss.com/soa-cloud/openshift/deploy-docker-images-on-openshift


  • Openshift uses Image Streams to reference a Docker image. An image stream comprises one or more Docker images identified by tags. It presents a single virtual view of related images, similar to a Docker image repository, and may contain images from any of the following:
    Its own image repository in OpenShift’s integrated Docker Registry
    Other image streams
    Docker image repositories from external registries 
http://www.mastertheboss.com/soa-cloud/openshift/using-wildfly-on-openshift

  • When deployed on OpenStack, OpenShift Origin can be configured to access OpenStack infrastructure, including using OpenStack Cinder volumes as persistent storage for application data.

https://docs.openshift.org/latest/install_config/configuring_openstack.html#install-config-configuring-openstack

  • OpenShift can build Docker images from your source code, deploy them, and manage their lifecycle. To enable this, OpenShift provides an internal, integrated Docker registry that can be deployed in your OpenShift environment to locally manage images.

https://docs.openshift.com/enterprise/3.1/install_config/install/docker_registry.html

  • geard is a command-line client and agent for integrating and linking Docker containers into systemd across multiple hosts. It is the core of the next generation of OpenShift Origin and helps administrators install and manage the components of their developers' applications
http://openshift.github.io/geard/

  • Use immutable infrastructure to deploy and scale your containerized applications. Project Atomic builds OSes, tools, and containers for cloud native platforms.
Atomic Host provides "immutable infrastructure" for deploying to hundreds or thousands of servers in your private or public cloud.
http://www.projectatomic.io/

No comments:

Post a Comment