LoginSignup
1
1

More than 3 years have passed since last update.

20190803_Java&k8s on Azure祭りに行ってきた話

Last updated at Posted at 2019-10-07

随分間が空いてしまいましたが。(まとめるのを忘れていました)

20190803 Java & k8s on Azureまつり

午前中の部

Java活用から学ぶコンテナの利用シーン

  • コンテナは歴史がある

    • Dockerよりもk8sになってきている。
  • microserviceは何のために?

    • 競合他社に負けないために
    • 受け入れられるものと受け入れられないもの
      • 改善の繰り返し
    • 影響の極小化
    • カナリアリリース
  • Windows Server 2016 TP3からDockerが使える。

  • Dev/Ops

    • コンテナを触るなら、両方の知識が必要
  • コンテナ

    • 出来るだけ小さいイメージを作るように心がけるべき。
  • open-jdk

    • Azul Systemsのzuluが使える。
  • dockerだけだと機能が足りない

    • 冗長構成には不向き(複雑な構成になると表現が難しい)
  • dockerのセキュリティ

    • 脆弱性
      • officialのイメージを使う。
      • Aqua Security/Twistlock
      • 脆弱性がチェックできる模様
  • docker-composeは不要になるか?

    • 複雑なシステム(サービスが複数あるようなものとか)だとdocker-composeだと面倒臭くなる。
      • なので、簡単なものであればdocker-composeでも良いがk8sを押している。
  • 本番運用時は動いている環境は考慮しなければいけないのか?

    • しないといけない。
      • コンテナが全てのリソースを食い潰さないように設計しないといけない。
  • なんでもかんでもコンテナに向いているわけではない

    • スケールアウトするようなものには向いている。
    • スケールアップが必要なものは向いていない。
      • 所詮、間借りしているだけだから、直接触った方がよい。
  • Azureの場合

    • Web App
      • サービスが少ない場合はk8sよりもおすすめな模様。(ランニングコストが安いとのこと。)
    • Container Instance
      • Web Appは一度動かしたら動かしっぱなしで課金されてしまう。
      • Container Instanceは動いている時だけ課金される違いがある。

午後の部

ハンズオンの資料
k8s

  • k8sのインストール方法

    • GUI
    • azコマンド
    • リソースグループのテンプレートを使う
  • k8s

    • poはpodの略。
    • コンテナを起動しているわけではない。
      • なぜそうなっているかというと、依存関係が強いものをまとめられるようにしているとのこと。(パフォーマンス重視とのこと)
    • 落ちたらIPが変わる。
    • yamlファイルのlabels属性でフィルタリングできる?
    • podの操作ができる。
    • p.52のapplyは-fが必要
    • p.58で実行するのは12-Ingress.yaml
  • コンテナの注意点

    • latestタグは使わない。
    • タグにはbuild-idをつける。
    • 小さいイメージの作成を心がける。
      • openjdkでもalpineのやつが一番軽い。
    • ユーザーのパーミッションを設定する。
    • DockerHubのイメージはむやみに信じない。
      • 使う場合はセキュリティを確認して!
    • cacheが効くような書き方でdockerfileを作る。
  • k8s

    • ReplicationConroller -> Replica Set -> Deployment
    • リソース使用量:きちんと指定する。(設定しないと全部使い切っちゃう)
      • kubectl top pod で見れる。
    • Selector/Labelの理解が重要
      • 安全に切り替えができる
    • ServiceにLBを使わない
      • 外部に公開するのは基本的にIngress
    • 困った時は
      • describe, log, exec, get events
    • 情報は英語を見ましょう。
      • 本番環境に適用するならなおさら。(お試しなら日本語の情報を参考にしてもいいけど。)
    • 全てのk8sの機能を利用する必要はない
      • 変化が早い
    • 複雑な構成を作らない。
      • 運用構成を変えればできるようなものは無理してk8sでやらない。
    • k8sはポータビリティがある?
      • ある点とない点がある。
      • LBもPVも実装依存
    • どのバージョンを利用しているか?
    • バージョン毎の差異が大きい(設定など)
    • 大規模k8sクラスタを構成しない(ノードを多く作らない)
    • 多くても20〜30ノードに留めておくのがよい(再構築の際に時間がかかる)
    • k8sのバージョンアップは新規クラスタ構築が推奨とのこと。
    • PVは極力使わない。
    • DBはマネージドサービスを使うのがよい。
      • PVとの絡みがあるから?
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1