【入门】学习Kubernetes备忘录①:从Docker学起

はじめに:くーべねてぃす?

なんとなく今まで聞いたことあったけど触れたくなかった、、、Dockerでよくないか?
とかとか、思っていた今日この頃。

しかし、モダンな技術だし(モダン?)
クラウド上でシステム構築するときになんか良いらしいし、最近使うことになったので勉強していきます。
(必要を迫られないと勉強しない、エンジニアの風上にも置けない人間)

ということで、Kubernetesの理解のために何を勉強したのかメモ代わりに残しておきます。
今回は以下の内容を取り扱います。
・Dockerの基礎
・Kubernetesの基礎
・Kubernetesの利点
・Kubernetesの用語と仕組み
・両者の関係性

由于我也是初学者,如果有任何错误之处,请您留下评论,我将不胜感激。

这篇文章的目标

    1. KubernetesどころかDockerも怪しいよの人

 

    Kubernetesは聞いたことはあるけれど…の人

以上の、駆け出しエンジニア用です。
一緒に勉強していければ幸いです。

Dockerの基礎

阅读关于Kubernetes的入门文章时,经常会看到“通过容器…”或者“Docker…”,所以首先从 Docker 开始。
由于前辈们的入门文章非常出色,请务必参考这篇文章。

【docker入門】

 

【Docker入門综合版】

 

只要你完全不了解Docker,从来没有用过的话,尝试动手实践可能需要花上1到2个小时。
如果单靠阅读、观看能够掌握,那么全世界的人都能成为大谷翔平!!!

个人备忘录

    • 「いちいち各PC上で開発環境整えるの面倒だから仮想環境上で動くもの作ろうよ」ができるよ。

 

    • 仮想環境の作り方はいろいろあるけど、OS上に直接作るんじゃなくてDocker Engine用意してその上に作ろうよ(コンテナ仮想化)。

 

    • 「コンテナ」が実行環境。「イメージ」が実行環境(コンテナ)のひな型。「イメージ」から「コンテナ」ができるよ。

 

    「Dockerfile」はイメージ作成の指示書。「Dockerfile」から「イメージ」が作れるよ。

Kubernetesの基礎

现在,是时候开始学习Kubernetes了。

Kubernetes是什么?

 

↑は公式ドキュメントですが、よく読めばなんとなくわかるのですが元が英語なので直訳的かつ、専門用語が多数、、、
でもなんとなく、 「コンテナ(実行環境)をいい感じに管理してくれるプラットフォームなんだな~」 ということがわかります。

Kubernetes的优势

まずは、なぜKubernetesを使うのかです。
上でも書きましたが、結局のところは「いい感じにコンテナ管理してくれる」に尽きると思います。
今までは、コンテナのデプロイやスケーリングなどの管理を手動や半自動でやっていましたがこれを 自動 でやってくれます。
この特徴が コンテナオーケストレーションと呼ばれ、 「コンテナ化されたアプリを自動的にデプロイ、スケーリングおよび管理してくれる」 とのこと。
もう少し詳細を見てみると、以下の特徴がよく挙げられています。

・コンテナの自己復旧

 

処理失敗状態のコンテナを自動的に再起動したり、入れ替えたりしてくれる。

 

・自動スケーリング

 

コンテナ数を自動的にスケールアップorダウンしてくれる。

 

・リソースの最適活用

 

コンテナの必要とするCPUやメモリを宣言するとリソースを最大限に活用してくれる。

 

・ストレージの管理

 

ローカルやクラウドのストレージを選ぶと自動でマウントしてくれる。

 

・ネットワークトラフィックの管理

 

コンテナへのトラフィックが多い時に、負荷分散してくれる。

 

・ロールアウト・ロールバックの管理

 

アプリケーションのバージョンに合わせ、自動的にコンテナの作成・削除、それらへのリソースの適用をしてくれる。

 

・セキュリティ情報や構成情報の管理

 

パスワードやトークン、キーなどを保持可能。(著者はよく理解できてない)

ひとまず、こんな感じがKubernetesを使うメリットでしょうか。
正直、使ってみないと分からないし、大規模なサービスにならないとあまり実感できないのでは?という気もしています。
ところで、コンテナオーケストレーション的なソフトウェアは他にもあるのですが、なぜKubernetesなのかという点については、やはりAWSやGCP、Azureがサポートしていることが大きいのではないでしょうか。

Kubernetes的术语和机制

大致了解了一些好处后,首先我整理了至少要了解的术语。

・Kubernetesクラスタ

 

マスターとノードを含むマシン群。

 

・Kubernetesマスター(コントロール・プレーン)

 

Kubernetesノードを制御するマシン。Kubernetes APIサーバ、etcd、Kubernetesスケジューラ、Kubernetesコントローラ、クラウド・コントローラ・マネージャが含まれる。

 

・Kubernetesノード

 

マスターに制御されるマシン。割り当てられたタスクを実行。Kubelet、Kubernetesネットワーク、Docker、コンテナなどが含まれる。

 

・Pod

 

各ノードにデプロイされた、一つ以上のコンテナからなるグループ。ストレージやネットワークなどをファイルで設定できるらしい。

 

・Service

 

Podと外部の通信を取り持つための仕組み。アクセスをPodに自動的に分配してくれる。

 

・マニフェストファイル

 

マスターで処理されるシステム全体の仕様書。yamlで書かれ、これにどんなコンテナをデプロイするかとかが書かれてる?(まだ詳細を理解してない)

 

・kubelet

 

各ノードで実行されるエージェント。Podの起動や管理を担当。

 

・kubectl

 

KubernetesのCLI的なもの。これでマニフェストファイルをマスターに処理させたりいろいろするらしい。

在对这些术语有了大致的理解之后,我们来谈谈它的机制,您可以阅读以下的文章试试看。

【什么是Kubernetes】(关于组件)

 

【适合经历挫折的工程师学习】详细理解Kubernetes机制(入门/基础版)】(推荐因其极易理解)

 

と、こんな感じですがKubernetes全体のイメージは掴めたでしょうか?
ちなみに、著者は6割ぐらいの理解で、以下のような感想です。
「じゃあ実際にKubernetesはどう使えばいいんだ~~!!」
「そもそもKubernetes使う場面がわからん~~!!」
実際の使い方や使用場面については第2回以降で取り扱いたいと思います。

Kubernetes和Docker之间的关系

最終是关于Kubernetes和Docker之间的关系。
作者以前认为这两者是相等的关系,选择其中一个就无法选择另一个。
然而,Kubernetes是一个用于管理容器的平台,而Docker是一种能够创建和运行容器的技术(软件)。
也就是说,希望同时利用这两者,Kubernetes负责整体管理,Docker在各个节点上实际运行容器。
经常说Kubernetes是容器的操作系统,现在也理解了其含义。

ところで、Dockerを少しかじったことがある方は、「DockerComposeがあるからKubernetesいらなくない?」と思うでしょう。
たしかに、シンプルで拡張する予定のないアプリケーションならばDockerComposeでよいかもしれません。
しかし、複数のサーバで複数のコンテナを実行している場合、それらの管理や監視は非常に面倒です。

这里有一篇很容易理解的文章:【数小时内完全掌握!相当实用的Kubernetes实践!】(从Kubernetes的优势开始)。

 

在现代的容器化服务开发中,Kubernetes作为一项综合管理容器的重要技术非常关键!!(结束语)

结束

对于Kubernetes,你大概理解了吗?
我认为有很多有参考价值的文章,但是它们在术语的统一性和关注重点上存在很多分歧,很难找到所需的信息。
此外,我也感到这是一项需要亲手实践才能理解的技术。
因为它涉及了很多抽象的表述,以及对抽象概念的使用。

希望下一次能够做一个简单的实践操作。

我参考了一些文章等。

以下是在中国引进的材料:
【Docker入门】
https://qiita.com/HyunwookPark/items/43164de18a256182bf85
【Docker超入门合并版】

【什么是Kubernetes?】
https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/
【什么是Kubernetes(Oracle)】(组件的相关)
https://www.oracle.com/jp/cloud-native/container-engine-kubernetes/what-is-kubernetes/
【理解Kubernetes的机制(入门/基本篇)[针对流产的工程师]】

在这些资料中我参考的是:
– 【【Docker图解】理解Docker的整体概念 – 前篇 -】(包含后篇)
– 【适合Kubernetes初学者的入门实践】
– 【Kubernetes是什么(来自VMware)】
– 【Kubernetes是什么(来自Red Hat)】
– 【用图解方式简明易懂地解释Kubernetes是什么!包括Pod和Namespace】
– 【Kubernetes的架构】

bannerAds