Kubernetes1.20以降dockerは使えないのか?

いいえ使えますよ(にっこり😇)

結論これまで通り、本番環境のkubernetesからコンテナレジストリにあるDockerイメージをpullしましょう!

Kubernetes1.20以降で変わる事

詳しい技術やアーキテクチャーはこちらのブログで詳しく解説されているので、打田は実際の運用などについて書きます。

kubernetesが各ノードの中にあるコンテナに命令を出す際に使うランライム( アプリの実行機能部分)にdockerを使わないようにするとの事です。

理由としてはセキュリティ等らしく、実際に本番ノードで使うdocker APIはごく一部なので、余計なAPIを本番ノードに残すのは危険という見方ですね👀

おすすめの開発環境運用方法

  • ローカル環境 → これまで通りdocker-composeとDockerfileを組み合わせる
  • 本番環境 → 諸々の準備を簡単にやってくれるGKEなどのマネージメントサービス
  • 本番環境に対応できるdockerイメージの作成(これ重要)

本番環境に対応できるdockerイメージとは

色々な方法がありますが、本番環境に対応できる環境変数を持ったdockerイメージを設計する事が重要になってきます。

具体的にはAPIサーバーだと、DBのアクセス情報などをDockerfileのARGで設定して、ビルド時の引数で変化させられると、そのまま本番環境のkubernetesで使用できるdockerイメージを作る事ができれば、kubernetes1.20以降も継続してdockerを使う事ができるので、心配はいりません!