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

JKD18.12-2T2_Pharosでk8s環境を楽して割り切って作る / JKD1812_2T2_Pharos

81ea84ebf9bc06e1a7d4bbaed39861b3?s=47 w4yh
December 05, 2018

JKD18.12-2T2_Pharosでk8s環境を楽して割り切って作る / JKD1812_2T2_Pharos

81ea84ebf9bc06e1a7d4bbaed39861b3?s=128

w4yh

December 05, 2018
Tweet

Transcript

  1. Pharosでk8s環境を楽して割り切って作る @w4yh JAPAN CONTAINER DAYS 2T2 / 2018-12-05 #containerdaysjp #TerraceRoom

  2. ▸@w4yh ▸データセンターで運用基盤のお守りを担当 ▸今日の内容は業務production環境ではない ▸自分用の検証環境のリニューアルで用いた際のお話 ▸Rancher 1.x、Kontena Classic、Kontena Pharosは経験したが 生Kubernetesはほぼ経験無し ▸KontenaやAnchoreの中の人でも代理店でもコミッターでもなく

    ただのファン/ユーザー 自己紹介 #containerdaysjp #TerraceRoom
  3. CFP申込時のタイトル 「ちょっとセキュアなk8s環境をPharos+Anchoreで楽して作る」 今日のタイトル 「Pharosでk8s環境を楽して割り切って作る」 ▸時間の都合で今日はAnchoreは省略 ▸コンテナ用脆弱性スキャンは各種プラットフォームやツールに 標準で組み込まれるようになり選択肢も増えた ▸Anchore公式ブログにCircleCIで使う方法の投稿 ▸おことわり:発表中Kontenaはケイオンテナと読んで一般名詞コ ンテナと区別

    CFP #containerdaysjp #TerraceRoom
  4. 最初に結論 「Pharosでk8s環境を楽して割り切って作る」 ▸Kubernetes ディストリビューションであるPharosを用いることで Kubernetes自体とAddonのライフサイクルをPharosのリリースと して一括で管理できる ▸Built-in Addon (バンドル) の範囲で使えばAddonも動作確認済みの

    ものを使うことになるのではまる危険性を減らせる ▸付属ツールを活用することでさらに楽ができる #containerdaysjp #TerraceRoom
  5. ▸自分用の開発検証環境を元々はKontena Classic + Open vStorageで 組んでいた ▸Kontena Pharosのリリースとそれに伴うKontena Classicの開発方 針変更

    背景と課題 ▸自分用なので手間はかけずに移行したい ▸ストレージのデータも移行する #containerdaysjp #TerraceRoom
  6. Kontena Inc.の社名 & 最初のプロダクト名 ▸独自のコンテナオーケストレーションツールKontena Classicを提供 ▸創業メンバーが日本好きで社名はローマ字表記に由来 ▸2015-04当時のウリは「Application Containers for

    Masses」 (後に「The Developer Friendly Container & Microservices Platform」 ▸2016-11 バージョン1.0リリース (最新は1.5.4。APL2) ▸随所に「楽したい」「大げさでなくていい」という姿勢が感じられるの が良い(発表者の主観) Kontena #containerdaysjp #TerraceRoom
  7. Kontena Classic ▸Kontena Inc. 独自のコンテナオーケストレーションツール 特長 ▸シンプルで簡単かつ十分な機能 ▸LBが標準機能にあり簡単にL4 LBが 構成できる。Let’s

    Encrypt連携も込み ▸Stackというdocker-composeの仕組みを 利用したパッケージング #containerdaysjp #TerraceRoom 2017/10/17の私のツイート
  8. Kontena Classic の現状 ▸Ver 1.5.4で「欲しい機能は揃った」として新機能追加はしない方針 公式サイトの[Legacy]はその旨 (screenshot from kontena.io) ▸バグ修正などは継続

    ▸「誰かレビューしてくれれば1.6はリリースできるんだけどなあ」とい う発言もSlackで ▸Kontena ClassicのMaster ServerをSaaS提供するKontena Cloudは年内無料 開放中(年末サービス終了/新規受け付け終了) #containerdaysjp #TerraceRoom
  9. ▸2017-09 Mesos DC/OSがk8s対応を発表 ▸2017-09 Rancher 2.0が ▸2017-10 Dockerが ▸2018-04 Kontena

    Pharosを発表「The Simple, solid, certified kubernetes distribution that just works.」 ▸2018-05 Pharos 1.0リリース ▸2018-11 Pharos 2.0リリース (最新は2.0.4。Kubernetes 1.11.5対応 APL2 / フリーミアム) Kontena Pharosの登場 https://www.kontena.io/pharos/ #containerdaysjp #TerraceRoom
  10. Kontena Pharosのメリット -公式 ▸インストール、メンテナンスが簡単 ▸最新のKubernetesに追従 ▸デフォルト設定はセキュリティ固めにしてNIST SP800-190に準拠 ▸Built-in Addon、もちろん他のaddonも利用可能 ▸オンプレでもIaaS上でもサポート

    ▸containerd, cri-o に対応 #containerdaysjp #TerraceRoom NIST SP800-190 “Application Container Security Guide” https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-190.pdf
  11. Kontena Pharosのメリット -Addon ▸Built-in AddonとしてPharosで動作確認されたKubernetes Addonがあり、 一通りの機能をcluster.ymlから揃えることができる ▸Pharos 1.xでは以下のAddon Pharos

    Host Upgrades Cert Manager Ingress NGINX Kubernetes Dashboard OpenEBS #containerdaysjp #TerraceRoom
  12. Pharos Host Upgrades ▸ホストのkernelをアップデートしてリブートしたい時などに使う ▸開始時刻 (+メンテナンスウインドウ時間)を指定 ▸yum-cron/apt dailyに介在してクラスタ内でリブートを1台ずつ適用 ▸Drain/evict –

    reboot – pod起動/uncordon を処理してくれる host-upgrades: enabled: true schedule: "0 6 * * *" schedule_window: 1h reboot: true #containerdaysjp #TerraceRoom
  13. ▸必要な物 Kontena Account https://account.kontena.io/signup 作業環境 と インストールするマシン パスワード無しでsshログイン + パスワード無しでsudo

    Kontena Pharosの導入 #containerdaysjp #TerraceRoom
  14. ▸chpharos (chrubyのような複数バージョン管理ツール) $ curl –s https://get.pharos.sh | bash ▸pharos cliの導入

    $ chpharos login (Kontenaアカウントでログイン) $ chpharos install latest $ chpharos use 2.0.2+oss ▸cluster.ymlを作成 ▸ $ pharos up -c cluster.yml Kontena Pharosの導入 #containerdaysjp #TerraceRoom
  15. ▸pharos cliでインストールと同様にできる $ chpharos login (Kontenaアカウントでログイン) $ chpharos install 2.0.3

    $ pharos up -c cluster.yml Kontena Pharosのcluster update #containerdaysjp #TerraceRoom
  16. Kontena Pharosのメリット(をKontena Classicとの対比で) ▸シンプルで簡単 Built-in Addon相当で一通りの機能が揃う host-upgrade最高 ▸LB ingress-nginxがbuilt-in addon

    Service Meshとかの対応欲しい… ▸Stack Helm? ただし mortar が出た #containerdaysjp #TerraceRoom
  17. mortar (臼砲, 迫撃砲 {しっくい}) ▸kubectl apply --prune –f {dir} 相当のツール

    ▸Pharosとは独立して利用可能 ▸ディレクトリ内のマニフェストを一つの shot として管理 ▸Kustomize チックな overlay (とtemplate)が使える ▸$ mortar fire <dir> <shot-name> ▸$ mortar list ▸CIで何度も実行したりyankしたりする する時に便利 https://github.com/kontena/mortar #containerdaysjp #TerraceRoom
  18. ここまでは、平和だった Pharos 1.x のお話 以下 Pharos 2.x について #containerdaysjp #TerraceRoom

  19. Kontena Pharos 2.0 ▸ライセンスの範囲が変更 Pharos 1.x はサポートなどが有償でソフトウェアはAPL 2.0 Pharos 2.xでは一部のBuilt-in

    Addonも有償に ▸ただし、evaluationでの利用の範囲においてはAddonもすべて無償利用 可 #containerdaysjp #TerraceRoom
  20. Kontena Pharosのメリット -Addon ▸Pharos 2.xのBuilt-in Addonは以下 Cert Manager Pharos Host

    Upgrades Helm Ingress NGINX Kontena Lens (OSS版には無い。Kubernetes Dashboardから変更) Kontena Storage (OSS版には無い。Rook+Cephベース) Kontena Backup (OSS版には無い。Heptio Arkベース) GUIが有償に OpenEBSはdeprecatedに #containerdaysjp #TerraceRoom
  21. Kontena Lens ▸管理GUI。モニタリングの他RBACの管理も行える ▸Kontena Cloudを彷彿と… Kontena Cloud後継のGUIを作るという発言も #containerdaysjp #TerraceRoom https://www.kontena.io/

  22. ▸Kontena Classicの環境からKontena Pharos (ver 1.5)に稼働環境を移 行して問題無く稼働できている ▸手間はかけずに移行したい →容易に環境を構築できた。運用も捗る ▸ディストリビューションを使うのでBuilt-In Addonを活用して

    3rd-partyは用いないと割り切れば管理も運用も楽ができそう ▸Pharos 2.xの(ライセンス)変更にはこれから対応 まとめ/結果 #containerdaysjp #TerraceRoom
  23. Kontenaの参考情報 ▸公式サイト https://kontena.io/ ▸Pharos https://pharos.sh/ https://github.com/kontena/pharos-cluster ▸mortar https://github.com/kontena/mortar Appendix.1

  24. Anchoreの参考情報 ▸ 公式サイト https://anchore.com/ ▸ Bitnamiでの利用例 https://engineering.bitnami.com/articles/how-bitnami-continuously- scans-container-images-to-fix-cve-reported-security-issues.html ▸ CircleCIに組み込む方法

    https://anchore.com/blog/integrating-anchore-scanning-with-circleci/ Appendix.2
  25. Kontenaと日本 ▸ ソースを見失ったが、社名はcontainerの日本語から来ているとweb上 での言及あり ▸ かつてはmeetup.comにKontena Tokyoグループがあった (GlobalなYouTube Webinar1件が登録されただけで本家グループに統合) ▸

    Kontena Classic cliには $ kontena container という混乱させられるサブコマンドがある Appendix.3
  26. Kontena Community ▸公式Blog、Slack、Githubが主なチャネル ▸Slack登録はこちらから https://slack.kontena.io/ ▸実質generalチャネルのみ / 最近Lensチャネルができた ▸その分(?)スレッド利用は活発でreplyが3桁になることもざら ▸GitHubはマージ後もbranchを残すことが多い

    ▸結果、Kontena Classicはstale branchが287 ▸Forumもあるが不活発 https://forum.kontena.io/ Appendix.4
  27. Pharos Price List ▸https://www.kontena.io/pharos#pricing ▸ただしevaluationならばPROも無償利用可能 Appendix.5

  28. その他のKubernetes Distributionの例 ▸SuperGiant https://supergiant.io/ ▸Typhoon https://typhoon.psdn.io/ 個人的にはTectonicやOpenShiftは もう少し大きなSolution Suiteな感じ Appendix.6