K8s

pro patek.cz

Petr Michalec

Works as SRE at F5, before Volterra.io, Mirantis, IBM, ...

n(vi)m lover. developer. geek. quad fpv pilot.

all with the passion for the edge thing


On Twitter as @epcim


Co je Docker

  • dobrej nápad

  • dobre napsat

  • zabalit

  • distribuovat

  • provozovat *

Containers (*Docker)

Filesystem

Docker

VM vs Container

Docker

Architecture

Dockerfile

FROM jpetazzo/dind
MAINTAINER Petr Michalec <epcim@apealive.net>

RUN apt-get update
RUN apt-get install -qqy    curl \
                            sudo \
                            git \
                            mercurial \
                            subversion \
                            ca-certificates \
                            locales \
                            jq

RUN echo 'en_US.UTF-8 UTF-8'>>/etc/locale.gen
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV DEBIAN_FRONTEND noninteractive


## CHEF DK ###########################
RUN curl -L https://www.opscode.com/chef/install.sh | sudo bash -s -- -P chefdk
ENV PATH /opt/chefdk/bin:/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Make Chef DK the primary Ruby/Chef development environment.
RUN echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile
RUN eval "$(chef shell-init bash)"


RUN chef gem install kitchen-docker
RUN chef gem install kitchen-openstack
RUN chef gem install chef-sugar
RUN chef gem install chef-rewind
RUN chef gem install serverspec
RUN chef gem install infratester


# berks pre-fetch some common soup of cookbooks
RUN mkdir /tmp/fake_cookbook; cd $_
RUN echo "name 'fake_cookbook'\nmaintainer 'fake_cookbook'\nlicense 'fake_cookbook'\ndescription 'fake_cookbook'\nversion '0.0.1'" > metadata.rb
RUN echo "source 'https://supermarket.chef.io'\nmetadata\n\n" > Berksfile
RUN echo "cookbook '7-zip'\ncookbook 'apache2'\ncookbook 'apt'\ncookbook 'ark'\ncookbook 'bluepill'\ncookbook 'build-essential'\ncookbook 'certificate'\ncookbook 'chef-client'\ncookbook 'chef_handler'\ncookbook 'chef_ruby'\ncookbook 'chef-sugar'\ncookbook 'chef-vault'\ncookbook 'cron'\ncookbook 'database'\ncookbook 'device-mapper'\ncookbook 'git'\ncookbook 'minitest-handler'\ncookbook 'modules'\ncookbook 'ncurses'\ncookbook 'nginx'\ncookbook 'ntp'\ncookbook 'ohai'\ncookbook 'openssh'\ncookbook 'openssl'\ncookbook 'packagecloud'\ncookbook 'pacman'\ncookbook 'perl'\ncookbook 'rbenv'\ncookbook 'readline'\ncookbook 'resolver'\ncookbook 'resource-control'\ncookbook 'rsyslog'\ncookbook 'ruby'\ncookbook 'ruby_build'\ncookbook 'runit'\ncookbook 'subversion'\ncookbook 'sudo'\ncookbook 'sysctl'\ncookbook 'system'\ncookbook 'ulimit'\ncookbook 'users'\ncookbook 'windows'\ncookbook 'xml'\ncookbook 'yum'\ncookbook 'yum-epel'\ncookbook 'zlib'\n" >> Berksfile
RUN chef exec berks install
RUN cd -


## FIX UP'S ##########################
RUN chmod -R 0440 /etc/sudoers
RUN chmod -R 0440 /etc/sudoers.d
# workaround (drone.io has no way yet to modify this image before git clone happens)
RUN git config --global http.sslverify false




VOLUME /var/lib/docker
CMD ["wrapdocker"]

What is Kubernetes?

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

 

Stand alone Kubernetes, on-site or distributed as public platforms


UI, Tools to manage, operate, visualize, verify and lifecycle of "Deployments".

 

Physical infrastructure, Storage, Network. Integration with external services.

Scheduling

  • Placement
  • Replication
  • Scaling
  • Resurrection
  • Rescheduling
  • Rolling deployments
  • Cannary Upgrades
  • Downgrades
  • Collocation

Resources

  • Memory
  • CPU, GPU
  • Volumes
  • IPs, Ports
  • Image/Artefacts

Service mgmt.

  • Labels
  • Groups
  • Namespaces
  • Dependencies
  • Load Balancing

Application

Stručně

Aplikace

Kontejner

Orchestrace

Deployment

  • dobrej nápad

  • dobre napsat

  • zabalit

  • distribuovat

  • provozovat *

Basic objects

Higher-level abstraction Controllers

More

Linux namespaces

  • dobrej nápad

  • dobre napsat

  • zabalit

  • distribuovat

  • provozovat *

pattern

Co je teda DevOps?

...být schopen nasadit a provozovat aplikace i infrastrukturu jako kód

A cultural and professional movement, focused on how we build and operate high velocity organizations, born from the experiences of its practitioners. 

Nebo taky

Jak

Proč

  • Jake nastroje pouzivame

  • Ukazka

  • Jak vypada sprava aplikaci distribuovanych v cloudu

Co dal?

Backup slides

Break

(~ 2 min)

Copy of Dev Ops & SRE

By Petr Michalec

Copy of Dev Ops & SRE

  • 153