“前半部分简便的”Kind” Kubernetes”实践教程”
今話題の Kubernetes を始めたいが、環境構築に手間をかけたくない。
手軽に実行できて尚且つ ”作って壊す” を何回も自由に行いたい。
だって難しいですもん! 失敗しまくって何が悪い(開き直り)!!!
と思って、知識をお持ちの方に何かないですか?
都合のいい環境。無理ですよね?そんな都合のいい話・・・・。
有的!
以下是关于使用 Kind 在 Kubernetes 上进行环境构建的故事。我还在文章中解释了 Kubernetes 是什么。
公告:“本篇文章分为前篇和后篇。”
今后,Kubernetes 的知识是否重要?

首先,Kubernetes到底是什么东西呢?
它是一个容器编排工具。
如果用粗略的形象来说
-
- 「コンテナ増えたらDockerではコントロールできませんぜ!」
-
- 「こっちでうまくコントロールしておきまっせ」
-
- 「求められた変化に対応しやすくできるツールでっせ!」
-
- 「運用してコンテナの中身変えたくなる時ありますでしょ?
-
- サービス止めずにやる事もできまっせ!」
-
- 「お客さん増えるの心配?
-
- 足らななってもこっちでスケールしてうまく作って動かしときまっさ!
-
- (設定いるけどな!)」
-
- 「信頼のGoogleがバックにおんねんで!使うしかないでっしゃろ!」
-
- 「使える周辺ツール(エコシステム)がすんごい増えてるねんでー。
- やるっきゃないだろー」
这样轻率的解释真的可以吗?
各种各样的便利容器编排工具
Docker的Swarm、CoreOS的fleet、Rancher Labs的Rancher、Mesos的Marathon,是其他容器编排的主要选项。
– 2017年2月:CoreOS放弃了fleet开发。
– 2017年9月:Mesos和Rancher Labs宣布支持Kubernetes。
– 2017年10月:Docker决定与Kubernetes进行整合采用。
目前,它们在市场上占据了超过50%的份额。
换句话说,它们是容器编排的事实标准!
AWS也开始提供服务。
AWS开启了支持Kubernetes服务的EKS。
由业界最大的服务提供商进入市场,Kubernetes将迅速普及。
尽管AWS拥有自己独特的编排工具(ECS),但他们也开始提供基于Kubernetes的服务(EKS)。
- 下記は取材概要から要約
質問者:AWS代表さん、なぜ独自のコンテナオーケストレーションのECSを始めたんですか?
AWS代表:ECSはAWS上でしか動かないからです。それじゃ今後困りますよ。
質問者:今まではそれでいいって言ってたじゃないですか!
AWS代表:市場も変化していますし、Kubernetesを採用したサービスをAWSが作った理由は、「可搬性」と「機能性」です!
質問者:・・・
我问了Cockcroft先生为什么AWS在拥有ECS的情况下还开始提供Kubernetes服务。
3:Kindとは
kind is a tool for running local Kubernetes clusters using Docker container “nodes”.
Kubernetes in Docker の頭文字を取ってます。
つまり => kubernetes を Docker に入れちゃいました。

再补充一点特征说明。
-
- 他の類似ツールには存在しないマルチノードクラスタが使える(←マルチノードクラスタって? 後で説明します)
Kubernetesの公式が認めている。Kubernetesそのもののテストにも用いられている
Dockerがインストールされているホスト(ここで言うとMac)があればいい
ホスト環境を汚さない
コマンド簡単インストール
3:安装Kind

Macの場合で説明(Winさん等ごめんなさい)
-
- Docker for Mac 環境はありますか?たこやん「あるよ」
-
- Macですか?たこやん「Macやで!マクドちゃうで!」
-
- Homebrew入ってますか?たこやん「この前いれたで!」
- 下のコマンドをターミナルで入力して下さい。たこやん「はいな」
brew install kind
「インストールはおしまい!」
たこやん「えっ!おしまい?」
4: Kind を使う環境設定
Docker for Mac の設定
Kubernetesを使うのでDocker for Macの環境設定が少し必要です。
設定項目は下記です。
-
- Docker for Mac の Desktopアイコンより Preference(環境設定)を選択
- CPU: 4以上、 Memory: 8192MB以上、Swap: 1024MB以上、Discimage: 64GB以上 推奨

5: 安装 kubectl
kubectlはkubernetesのコマンドツールです。
インストールしなくてもkindを使う事はできますが、kubernetesを今後触るなら入れておきます。
章鱼小姐:“那就不要进来了。太麻烦了。”
「いや、いれるしかないでしょ!」
“不是的!你应该进来!赶紧进来。进来。进来。嗒!”
章魚先生:“哎呀!”
brew install kubectl
5: 善意的样本启动
大章:「好!开始Kubernetes作战!」
クラスターの構築を行います。
(たこやん「クラスターって何?美味しいの?」 <= 後で説明します)
创建一个Kind类簇
kind create cluster

章子怡:“太好了!成功了!”
「では削除します」
“塔子:「哎呀!?真的吗?」
「真的!」
de!)
2.Kindクラスターを削除
暂时请您删除。嗯,干脆一刀切。
kind delete cluster
全部消失了。感觉很清爽。
泷泷:「唉呀,怎么办呢?」
如果不了解Kubernetes的术语,就不能继续了解。
“嘿,确实是这样啊。没办法啊。无可奈何呀!”
「・・・」我只需要一个选项用中文来解释以下的原文。
6:Kubernetes 的基本用語摘要
1.ポッド(Pod)
Kubernetesを構成する最小単位。1つのPodにはコンテナを基本1つ入れる。
「基本以外は?複数可能?」
「可能ですが説明省略(サイドカーパターン、アンバサダーパターン等)」
2. 节点(Node)
Pod的总控组件。包含用于运行Pod的服务(如kubelet、kube-proxy等)。
3. 群体
Kubernetes的组成部分
4.コントロールプレーン(マスターノード)
我需要将以下内容以中文母语重新述述,只需一种选项:
作为一个群集中的一个节点运行。
管理调度和版本控制等Kubernetes的核心组件。
没有这个就无法开始。
5. 数据平面(工作节点)
将实际运行节点进行整合的物体被称为数据平面。
由于通过形象化的方式更容易理解,所以我在公司里强行试图再现了这一情景。

立可夫:嗯,剛剛那個Kind裡做的是什麼呢?
只需要控制平面。
Octopus-san: “In my imagination, is it just the company and the president?”
「ざっくりイメージではそうです。」
「为什么不只让老板一个人工作呢?」- たこやん
「・・・ 内心(この人無理いうなー)」
「決まりで社長(コントロールプレーン)は働き手(コンテナ稼働)できないです。」
「天哪,不行啊!如果这样做的话公司就要垮了啊!」
「难道没有工作部门和人(工作节点或者容器)吗!」
「そうです。だからそれを入れ直す為に作り直します。」
たこやん「あっ。そうかだからマルチ(複数)ノードが必要なんや!」
「そういう事です。やっとわかってもらえた」
7. Kind再度 dù)
1. 关于指示书的制作
笔者理解到需要一个工作节点,但如何创建它呢?是用什么命令?
「専門の指示書を作ってからコマンド入力で渡します。」
たこやん:「有关指示书专业?」
「YAMLという形式(拡張子:yml.yaml)でマニュフェストファイルというものを作り、コマンドでそのファイルを読み込みます。」
章鱼先生:“纳姆尔?”
「・・・。轟隆!」
2. 创建 yml 文件以启动 Kind
ワーカーノードの設定を入れたymlファイルを作成します。
下記がサンプルです。デスクトップ等にyml形式で作成し保存します。
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
简单地解释文件内容。
-
- kind : 種別の事ですね。今回のツールkindと被るのでややこしやーですね。
-
- apiVersion : apiのバージョンを指定します。今回Kind公式サポートのapiを使いました。
-
- nodes :ノードですね。
- role :役割の指定です。ここではコントロールとワーカーを指定しインストールするようにしています。
用这个设置重新安装Kind。
kind create cluster --config kind.yaml
これでワーカーノードの設置は完了です。
インストール時の履歴でワーカーノードがあるか確認してみましょう。

たこやん「Preparing nodes が2つになって、Joining worker nodesができた!」
「よしできた。ところでデータプレーンのポッドの中身は?」
「ありません。」
たこやん「ありませんではすみません。ありませんは有馬温泉だけで十分や!」
「・・・」