[验证] 让我们一起开始Kubernetes的学习 [通过使用minikube和教程来实践]

开始

许多公司已经开始采用并成为潮流的是学习 Kubernetes。

这篇论文的主旨即为上述内容。

虽然官方文件和其他技术博客上已经充斥着关于Kubernetes是什么的信息,我认为该信息已经非常丰富了。
因此,在这里,我想分享一下为了对初学者和初级工程师以及为了我自己的学习,我是如何推荐学习的。

// 有关专家辩论的参考文章
专家讨论了Kubernetes的顶级趋势和运维问题

kubernetes logo

■ 目标读者

    • Kubernetes未経験者

 

    • 初級エンジニア

 

    私自身 (Input/Outputしながら進めることで学習効率を上げたい)

■ 文件

根据下面的信息,我打算以试读的形式进行推进。

官方文件
https://kubernetes.io/docs/home/
※也有仔细整理的日文版

以下是 GitHub 上的存储库:
https://github.com/kubernetes/kubernetes
※有关可能有用的提示信息。还公开了一些架构图。

■ 学习方式

浏览一下文档,我发现包含了许多云服务和开源软件提供的功能。然而,由于信息太多,很难想象,因此我想在实际操作中学习。幸运的是,官方提供了验证工具,下面就是 minikube。

minikube logo

开始之前

首先,我认为最让人困惑的是 Kubernetes 的发音和读法。
在以下引用的文章中,提到了开发团队成员们在推特上是如何称呼它,并且还提供了实际发音的视频,我决定依照它们的发音(按照我听到的那样)。

引用: シラベタ-「Kubernetes」的正确发音方式

■ 开始验证

01. 准备验证环境

下面是一个选项的中文释义:歌德,我现在将按照minikube官方文档进行操作。它以教程形式编写,非常易于上手。链接:https://minikube.sigs.k8s.io/docs/start/

环境

Host OSWindows 10(64bit)VMVirtualBox(6.1.22)

很多人可能会在家中的环境下容易地准备好,我在这里尝试了一下。
※请适时尝试引入VirtualBox。

■ 02. 在Windows上安装minikube

有三种方法可供选择,但由于其中两种方法尚未安装包管理器,因此我采用了”minikube-installer.exe”进行安装。下面是安装后的确认结果。

PS C:\Users\Mitzi> minikube version
minikube version: v1.20.0
commit: c61663e942ec43b20e8e70839dcca52e44cd85ae

■ 03. 启动Kubernetes集群

PS C:\Users\Mitzi> minikube start
* Microsoft Windows 10 Home 10.0.18363 Build 18363 上の minikube v1.20.0
* virtualboxドライバーが自動的に選択されました
* VM ブートイメージをダウンロードしています...
    > minikube-v1.20.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
    > minikube-v1.20.0.iso: 245.40 MiB / 245.40 MiB [] 100.00% 9.77 MiB p/s 25s
* コントロールプレーンのノード minikube を minikube 上で起動しています
* Kubernetes v1.20.2 のダウンロードの準備をしています
    > preloaded-images-k8s-v10-v1...: 491.71 MiB / 491.71 MiB  100.00% 8.78 MiB
* virtualbox VM (CPUs=2, Memory=2200MB, Disk=20000MB) を作成しています...\            # このタイミングでVirtualBox Interfaceへの変更許可を求められる(2回)
* Docker 20.10.6 で Kubernetes v1.20.2 を準備しています...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Kubernetes コンポーネントを検証しています...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* 有効なアドオン: default-storageclass, storage-provisioner
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
minikube on VirtualBox

04. 试一试闪亮的簇簇。

从公式中得知:

如果你已经安装了kubectl,你现在可以使用它来访问你辉煌的新集群。

通过minikube.exe,检查虚拟机中pod的状态。

PS C:\Users\Mitzi> minikube kubectl -- get po -A
    > kubectl.exe.sha256: 64 B / 64 B [----------------------] 100.00% ? p/s 0s
    > kubectl.exe: 39.52 MiB / 39.52 MiB [---------] 100.00% 11.69 MiB p/s 3.6s
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-74ff55c5b-xjpmp            1/1     Running   0          28m
kube-system   etcd-minikube                      1/1     Running   0          29m
kube-system   kube-apiserver-minikube            1/1     Running   0          29m
kube-system   kube-controller-manager-minikube   1/1     Running   0          29m
kube-system   kube-proxy-92wbf                   1/1     Running   0          28m
kube-system   kube-scheduler-minikube            1/1     Running   0          29m
kube-system   storage-provisioner                1/1     Running   1          29m

※补充说明
– kubelctl 被存储在以下本地文件夹中。似乎使用了这个路径。
C:\ Users \ Mitzi \ .minikube \ cache \ windows \ v1.20.2 \ kubectl.exe

04-2. 安装kubectl

根据官方步骤获取最新版的kubectl,并进行了相似的验证。
https://kubernetes.io/docs/tasks/tools/

a) 获取最新版本的 kubectl.exe

PS C:\Users\Mitzi\Downloads> curl -LO https://dl.k8s.io/release/v1.21.0/bin/windows/amd64/kubectl.exe

 ↓ "-LO" のパラメータは使えないと警告がでる。 実体は下記コマンドになるため下記のように対応

PS C:\Users\Mitzi\Downloads> Invoke-WebRequest -Uri https://dl.k8s.io/release/v1.21.0/bin/windows/amd64/kubectl.exe -OutFile ./kubectl.exe

b) 檢查校驗文件以確認是否成功下載
根據文件仔細處理並遵從。學習中。

PS C:\Users\Mitzi\Downloads> curl https://dl.k8s.io/v1.21.0/bin/windows/amd64/kubectl.exe.sha256 -o ./kubectl.exe.sha256

比较哈希值

PS C:\Users\Mitzi\Downloads> CertUtil -hashfile kubectl.exe SHA256
SHA256 ハッシュ (対象 kubectl.exe):
9f77c0198c15b3b7f051cd4a58fb40941ade04c7d0b30c889aec64b8f4a57ed1

PS C:\Users\Mitzi\Downloads> type kubectl.exe.sha256
9f77c0198c15b3b7f051cd4a58fb40941ade04c7d0b30c889aec64b8f4a57ed1

好的/好吧

顺便说一句,在一行代码中,我确认了如下所示的内容。

PS C:\Users\Mitzi\Downloads> $($(CertUtil -hashfile .\kubectl.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl.exe.sha256)
True

c) 登録到PATH环境变量
·手动将kubectl.exe注册到PATH环境变量中,然后确认如下所示反映。

PS C:\Users\Mitzi> $ENV:path.split(";") | Select-String Kubernetes
-----
C:\Program Files\Kubernetes\Minikube
C:\Program Files\Kubernetes\bin       <- minikubeに合わせて、当該フォルダ配下にkubectl.exeを格納したためコチラを設定

d) 验证执行命令并确认版本

PS C:\Users\Mitzi> kubectl version --client
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"windows/amd64"}

确认它是最新版

e) 再次通过kubectl命令直接访问闪耀的集群并显示pod信息。

PS C:\Users\Mitzi> kubectl get po -A
NAMESPACE              NAME                                        READY   STATUS    RESTARTS   AGE
kube-system            coredns-74ff55c5b-xjpmp                     1/1     Running   0          10h
kube-system            etcd-minikube                               1/1     Running   0          10h
kube-system            kube-apiserver-minikube                     1/1     Running   0          10h
kube-system            kube-controller-manager-minikube            1/1     Running   0          10h
kube-system            kube-proxy-92wbf                            1/1     Running   0          10h
kube-system            kube-scheduler-minikube                     1/1     Running   0          10h
kube-system            storage-provisioner                         1/1     Running   1          10h
kubernetes-dashboard   dashboard-metrics-scraper-f6647bd8c-dmcbn   1/1     Running   0          9h
kubernetes-dashboard   kubernetes-dashboard-968bcb79-68sph         1/1     Running   0          9h

由于完成了后续提到的Dashboard的启动,因此显示增加如上所述。

04-3. 启动仪表板

PS C:\Users\Mitzi> minikube dashboard
* ダッシュボードを有効化しています...
  - Using image kubernetesui/dashboard:v2.1.0
  - Using image kubernetesui/metrics-scraper:v1.0.4
* ダッシュボードの状態を確認しています...
* プロキシを起動しています...
* プロキシの状態を確認しています...
* Opening http://127.0.0.1:51281/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
Kubernetes Dashboard

以下是从公式文档中获取的链接:
https://minikube.sigs.k8s.io/docs/handbook/dashboard/

据说可以通过GUI进行滚动更新和管理Pod。

04-4. 仪表板停止工作。

停止代理服务器(保持控制面板运行),中止已启动的进程(按下Ctrl+C)

In Chinese:
驾驶手册中也有详细说明急刹车的方法。建议紧急刹车时立即踩下刹车踏板。激进式。

■ 到目前为止的总结

我会准备一个验证环境,并初步了解Kubernetes的功能。我希望在以后的学习中继续参考文档进行验证。

bannerAds