openshift
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| openshift [2018/02/21 10:04] – [OpenSHift Architecture] skipidar | openshift [2020/12/27 20:35] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 77: | Line 77: | ||
| * | * | ||
| - | Scenario: External client points browser to myApp.cloudapps.ml.opentlc.com: | + | **Scenario**: External client points browser to myApp.cloudapps.ml.opentlc.com: |
| * DNS resolves to host running router container | * DNS resolves to host running router container | ||
| * Using openshift-sdn overlay network: | * Using openshift-sdn overlay network: | ||
| - | | + | * Proxies request to internal pod IP:port (10.1.2.3: |
| + | |||
| + | |||
| + | **Scenario**: | ||
| + | |||
| + | * | ||
| + | * | ||
| + | * | ||
| </ | </ | ||
| Line 93: | Line 100: | ||
| * Router container can run on any node host in environment | * Router container can run on any node host in environment | ||
| </ | </ | ||
| - | | XXX |< | + | | Services |
| + | * Services often used to provide permanent IP to group of similar pods | ||
| + | * Internally, when accessed, services load-balance and proxy to an appropriate backing pod | ||
| + | * Backing pods can be added to or removed from service arbitrarily while service remains consistently available | ||
| + | * Enables anything that depends on service to refer to it at consistent internal address | ||
| </ | </ | ||
| | XXX |< | | XXX |< | ||
| </ | </ | ||
| - | ==== OpenSHift UX ==== | + | |
| + | |||
| + | ===Container Deployment Workflow=== | ||
| + | |||
| + | Scenario: New application requested via CLI, web console, or API | ||
| + | |||
| + | ==OpenShift API/ | ||
| + | |||
| + | * Approves request, considering user’s permissions, | ||
| + | * Creates supporting resources: deployment configuration, | ||
| + | |||
| + | ==OpenShift scheduling layer:== | ||
| + | |||
| + | * Designates node host for each pod, considering resources' | ||
| + | |||
| + | ==OpenShift node:== | ||
| + | |||
| + | * Pulls down image to be used from external or integrated registry | ||
| + | * Starts container (pod) on node | ||
| Line 103: | Line 134: | ||
| + | == Update Rollout strategies == | ||
| + | |||
| + | |Rolling Update|Pre life cycle hook. Scale up/down new/old pods one by one. Wait for readiness checks. Post life cycle hooks. No downtime.| | ||
| + | |Recreate| Scale down all old. Scale up all new. Has downtime.| | ||
| + | |||
| + | |||
| + | == Concepts == | ||
| + | |||
| + | | BuildConfig |< | ||
| + | Definition of the entire build process as code. | ||
| + | </ | ||
| + | | Build Strategies|< | ||
| + | Build strategies for building artifacts. Artifact resulting from build depends on builder used to create it. | ||
| + | * | ||
| + | * | ||
| + | * | ||
| + | * | ||
| + | |||
| + | For Docker and S2I builds, resulting objects are runnable images. | ||
| + | For custom builds, resulting object are whatever builder image author specified. | ||
| + | |||
| + | </ | ||
| + | | Source-to-Image (S2I) Build|< | ||
| + | * Source-to-Image (S2I) is tool for building reproducible Docker images | ||
| + | * Produces ready-to-run images by injecting application source into Docker image and assembling new Docker image | ||
| + | * New image incorporates base image (builder) and built source and is ready to use with docker run command | ||
| + | |||
| + | Reproducability. S2I supports incremental builds, which reuse previously downloaded dependencies, | ||
| + | |||
| + | Security. Builds and runs are executed as root, which may be exposed. S2I can execute commands with less rights. | ||
| + | |||
| + | </ | ||
| + | | Image Stream |< | ||
| + | Docker images from different sources, identified by the same tag. \\ | ||
| + | Can be monitored, to trigger a build as a result. | ||
| + | </ | ||
| + | | Jenkins pipeline |< | ||
| + | * A Jenkins can be used to build artifacts via OPenShift. | ||
| + | * A Jenkins strategy is chose in BuildConfig | ||
| + | * A Jenkins-Pipeline is defined as code in BuildConfig | ||
| + | |||
| + | During the build the following will then happen | ||
| + | * A Jenkins will be started in a container and reused by all Jobs with the Jenkins-build-strategy. | ||
| + | * A Pipeline will be created. | ||
| + | * An image will be build. | ||
| + | * An image will be put into the registry. | ||
| + | * Then optionally, via trigers, the pod can be replaced by new pods with the container from new image. | ||
| + | |||
| + | Build via OpenShift pipelines: | ||
| + | {{https:// | ||
| + | |||
| + | More: | ||
| + | https:// | ||
| + | |||
| + | </ | ||
| + | | XXX |< | ||
| + | </ | ||
| + | | XXX |< | ||
| + | </ | ||
| + | | XXX |< | ||
| + | </ | ||
| + | | XXX |< | ||
| + | </ | ||
| ==== API ==== | ==== API ==== | ||
openshift.1519207454.txt.gz · Last modified: (external edit)
