“前半部分简便的”Kind” Kubernetes”实践教程”

今話題の Kubernetes を始めたいが、環境構築に手間をかけたくない。
手軽に実行できて尚且つ ”作って壊す” を何回も自由に行いたい。
だって難しいですもん!  失敗しまくって何が悪い(開き直り)!!!

と思って、知識をお持ちの方に何かないですか?
都合のいい環境。無理ですよね?そんな都合のいい話・・・・。

有的!

以下是关于使用 Kind 在 Kubernetes 上进行环境构建的故事。我还在文章中解释了 Kubernetes 是什么。


公告:“本篇文章分为前篇和后篇。”

記事概要リンク先前編: Kubernetesとは?・Nodeの作成初期 等 * 本記事後編: Pod作成とkubectlでPodの中身を見る 等 後編URLリンク

今后,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 に入れちゃいました。

Kind

再补充一点特征说明。

    • 他の類似ツールには存在しないマルチノードクラスタが使える(←マルチノードクラスタって? 後で説明します)

Kubernetesの公式が認めている。Kubernetesそのもののテストにも用いられている

Dockerがインストールされているホスト(ここで言うとMac)があればいい
ホスト環境を汚さない
コマンド簡単インストール

3:安装Kind

syokuji_takoyaki_man.png

Macの場合で説明(Winさん等ごめんなさい)

    1. Docker for Mac 環境はありますか?たこやん「あるよ」

 

    1. Macですか?たこやん「Macやで!マクドちゃうで!」

 

    1. 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以上 推奨
スクリーンショット 2020-08-10 19.50.28.png

5: 安装 kubectl

kubectlはkubernetesのコマンドツールです。
インストールしなくてもkindを使う事はできますが、kubernetesを今後触るなら入れておきます。

章鱼小姐:“那就不要进来了。太麻烦了。”

「いや、いれるしかないでしょ!」

“不是的!你应该进来!赶紧进来。进来。进来。嗒!”

章魚先生:“哎呀!”

brew install kubectl

5: 善意的样本启动

大章:「好!开始Kubernetes作战!」

クラスターの構築を行います。
(たこやん「クラスターって何?美味しいの?」 <= 後で説明します)

创建一个Kind类簇

kind create cluster
スクリーンショット 2020-08-10 20.34.49.png

章子怡:“太好了!成功了!”

「では削除します」

“塔子:「哎呀!?真的吗?」

「真的!」

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. 数据平面(工作节点)

将实际运行节点进行整合的物体被称为数据平面。

由于通过形象化的方式更容易理解,所以我在公司里强行试图再现了这一情景。

スクリーンショット 2020-08-10 22.18.59.png

立可夫:嗯,剛剛那個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

これでワーカーノードの設置は完了です。
インストール時の履歴でワーカーノードがあるか確認してみましょう。

スクリーンショット 2020-08-14 14.34.44.png

たこやん「Preparing nodes が2つになって、Joining worker nodesができた!」
「よしできた。ところでデータプレーンのポッドの中身は?」

「ありません。」

たこやん「ありませんではすみません。ありませんは有馬温泉だけで十分や!」

「・・・」

嗯,途中还没结束,但是现在是结束的时间了。嗯,不要啊。
こんなふざけた投稿でいいのだろうか?
下次我们计划在Kind的后半部分创建一个Pod,并查看Pod内部。
如果对你有所帮助,觉得有趣的话,请给予肯定。
わかりやすいかなと表現豊かに説明しました。(嘘)
如果有任何错误,请您温和地指正和提供意见给我,感激不尽。
bannerAds