Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker/Kubernetesコトハジメ/Docker~Kubernetes First Step

bells17
August 05, 2020

Docker/Kubernetesコトハジメ/Docker~Kubernetes First Step

CNBF Meetup #2 で発表した資料です

動画はこちら
https://youtu.be/yjtw4bp9pxg

Googleスライド版はこちらになります
https://docs.google.com/presentation/d/1xfdLkUNNc5n8yF9MNfn15z3rYjkuOUd-EG5oQ2YJVUg/edit?usp=sharing

bells17

August 05, 2020
Tweet

More Decks by bells17

Other Decks in Programming

Transcript

  1. • Daiki Hayakawa / @bells17 • ソフトウェアエンジニア • 主に Kubernetes

    関連コンポーネントの 開発など • Kubernetes #sig-docs-ja-reviews • CNBF実行委員 • @bells17_
  2. • アプリケーションの実行に必要な環境を1つのパッケージにまとめたも の(=コンテナイメージ) ◦ コード ◦ ランタイム ◦ システムライブラリ ◦

    etc… • Linuxカーネルの機能であるnamespace, cgroup, pivot_rootなどを利用す ることでコンテナを実現 コンテナとは?
  3. コンテナとVMの比較 コンテナ VM メモリ消費 少ない 多い 起動時間 数秒 数十秒~数分 起動できるOSについて

    例えばLinuxサーバー上 でWindows Serverを立ち 上げることはできない ハードウェアを仮想的 にエミュレートしている ので起動するOSの制約 が少ない
  4. FROM centos:8 RUN dnf -y install nginx ENTRYPOINT ["nginx", "-g",

    "daemon off;"] Dockerfile $ docker build -t mynginx:dev . Docker Image
  5. • Docker Hub: Docker社が提供しているコンテナレジストリサービス • GCP Container Registry: GCPが提供しているコンテナレジストリサービス でイメージの脆弱性診断機能やGKEとの連携機能がある

    • AWS ECR: AWSが提供しているコンテナレジストリサービスでAWS ECSや AWS EKSとの連携が行いやすい • Azure Container Registry: Azureが提供するコンテナレジストリサービス でコンテナイメージ以外にもHelm Chartなども格納が可能 コンテナレジストリの例(SaaS)
  6. version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart:

    always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: {} docker-compose によるコンテナの起動 (例: wordpressの構築・起動) $ docker-compose up http://localhost:8080/wp-login.php docker-composeで起動した wordpressにアクセス可能
  7. Kubernetesでコンテナを使ってみる apiVersion: v1 kind: Pod metadata: name: nginx labels: app:

    nginx spec: containers: - name: nginx image: nginx $ kubectl apply -f pod.yaml pod.yaml $ kubectl get pod NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 22s $ kubectl port-forward nginx 80:8080 $ curl -D - -s -o /dev/null localhost:8080 HTTP/1.1 200 OK Server: nginx/1.17.8 Date: Wed, 12 Feb 2020 12:12:23 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 21 Jan 2020 13:36:08 GMT Connection: keep-alive ETag: "5e26fe48-264" Accept-Ranges: bytes 作成したコンテナに リクエストできることを確認
  8. • Rancher Labsが提供するOSSのKubernetesクラスタ構築ツール • マネージドKubernetesのようなKubernetesクラスタ管理画面があり、 ユーザー管理からKubernetesクラスタの構築・バージョンアップなどの 管理まで一通りを行うことができる • またDocker Machine

    Pluginを作成することで任意の環境に対するクラ スタの自動プロビジョニングが可能 • KubernetesクラスタにRancher独自のコンポーネントがインストールされ ており、マネージドKubernetesのようなKubernetesクラスタの状態チェッ クやリソースのデプロイが管理画面から可能となっている Rancher
  9. • Docker/Kubernetes 実践コンテナ開発入門 • 15Stepで習得 Dockerから入るKubernetes コンテナ開発からK8s本番運 用まで • Kubernetes実践入門

    プロダクションレディなコンテナ&アプリケーショ ンの作り方 • Kubernetes完全ガイド Kubernetes関連書籍
  10. • Kubernetes Meetup Tokyo ◦ YouTubeチャンネル • Docker Meetup Tokyo

    • CloudNative Days ◦ YouTubeチャンネル • Cloud Native Meetup Tokyo • Cloud Native Developers JP • JAWS-UG コンテナ支部 • KubeCon ◦ YouTubeチャンネル Kubernetes関連meetup
  11. • http://docs.docker.jp/index.html • https://docs.docker.com/ • https://www.docker.com/ • https://www.docker.com/resources/what-container • https://www.redhat.com/en/topics/containers/what-is-container-orchestration

    • https://www.cncf.io/ • https://kubernetes.io/ja/docs/concepts/overview/components/ • https://landscape.cncf.io/ • https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/architecture.md • https://cloud.google.com/kubernetes-engine • https://cloud.google.com/anthos • https://aws.amazon.com/jp/eks/ • https://azure.microsoft.com/ja-jp/services/container-instances/ • https://www.ibm.com/jp-ja/cloud/container-service • https://docs.microsoft.com/ja-jp/azure/aks/windows-container-cli • https://github.com/kubernetes/kubeadm • https://rancher.com/ • https://github.com/kubernetes-sigs/kind • https://www.katacoda.com/courses/kubernetes/playground 参考