Skip to content

Instantly share code, notes, and snippets.

@hodrigohamalho
Last active September 28, 2015 01:16
Show Gist options
  • Save hodrigohamalho/2ecf8306c08931b4a633 to your computer and use it in GitHub Desktop.
Save hodrigohamalho/2ecf8306c08931b4a633 to your computer and use it in GitHub Desktop.
OSE3.adoc

Openshift V3

Environment

  • oselab (administration host)

  • master00 (master host, contains Etcd and the management console)

  • infranode00 (infranode host, Will run our infrastructure containers: Registry and Router)

  • node00 (node host, Region: Primary, Zone: East. )

  • node01 (node host, Region: Primary, Zone: West. )

SSH

To connect via SSH use oselab-8750.

Commands

oc get pods
oc get pods --watch
oc describe dc/rodrigo-router-1-o1w6m
oc edit dc
oc get all -l router=rodrigo-router
oc delete all -l router=rodrigo-router
oc get po
oc get se
oc get bc
oc get project
oc get routes
oc get builds
oc build-logs simple-openshift-sinatra-sti-1
oc project nome-do-projeto
oc logs nome-do-pod -f
oc edit pod/jenkins -o jso/yaml
oc start-build ...
oc scale rc nodejs-ex --replicas=2
oc expose service/nodejs-ex --hostname=http://nodejs.cloudapps-GUID.oslab.opentlc.com
oc scale rc simple-openshift-sinatra-sti-1 --replicas=0
oc exec -ti -p trainingrouter-1-jm5zk /bin/bash
oc exec -ti -p `oc get pods |  awk '/route/ { print $1; }'` /bin/bash
oc exec --stdin --tty -p mysql /bin/bash
systemctl restart openshift-master
ip=`oc describe pod hello-openshift|grep IP:|awk '{print $2}'`

Projects default and openshift contains templates/registry e router.

Hoje a única forma de persistir arquivos é através de NFS ou GFS (Google File System)

Service

Tem ip fixo e faz roteamento entre os pods

Deploy (dc)

Estratégia do deploy a ser implantada.

Monitoring

Apps on openshift

  • management.next

  • hawkular

Openshift itself

  • Cloudforms

  • Fabri8

On OSE V2

  • Nagios

  • New Relic

  • Dynatrace

Create POD

oc new-app https://github.com/openshift/simple-openshift-sinatra-STI.git -l "todelete=yes" -o yaml |  sed 's/replicas: 1/replicas: 3/g' | oc create -f -

To running docker apps on openshift

oc edit scc restricted

Edit the line above:

runAsUser:
  type: RunAsAny

Check

  • verificar se tem router rodando

  • o DNS tem que estar apontando pro nó do route

  • o pod do route tem que estar sempre na mesma maquina (alternativa é o vip)

  • Error 503: Router não consegue chegar no node

    • Comunicação do router com o master pode estar falhando

    • Problema de rede

  • Qualquer problema que não seja de rede:

    oc logs
  • No such host (não atinge a api do master)

    • NEW - procurar no journal do master (procurar problemas no docker registry)

    • Peding - procurar por problemas no SDN u scheduling

    • Running - oc get pods (verificar se está Ready)

    • Qualquer outro problema procurar oc logs

  • Porque eu tenho replicas no dc e rc? RC tem dois estados o desejado e o atual. QUal esta falando do esteado desejado estamos falando do DC, já o RC é um deamon rodando dentro do master que le o estado desejado e tenta replicar este estado dentro do estado atual.

    • RC - estado atual

    • DC - estado desejado

Health Check

  • Check Docker registry

    oc get service -n default
    curl 172.30.14.15:5000/healthz (a resposta tem que ser um jason vazio)
    oc exec <reg-pod> find / registry (se retornar só uma linha não tem problema é sinal que o docker registry esta vazio)
  • Rota

    oc exec <reg-pod> -ti /bin/bash  (entra no prompt do pod)
    cat /var/lib/containers/route.json (tem que ter o ip de algum service)
  • File system

  • Journal

  • master

  • node

  • VirtIO no NIC das interfaces virtuais

  • Router se comunicando com o master

  • Criar um POD para teste

Scheduler

Priorities: é uma série de regras que verifica se o POD pode ser colocado em determinado host. ex: - Place pod on a node that has enough resources for it (duh) - Place pod on a node that doesn’t have a port conflict (duh) - Place pod on a node that doesn’t have a storage conflict (duh)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment