为了学习Kubernetes,创建一个minikube环境

Minikube是什么?

Kubernetes的试用很方便。虽然搭建Kubernetes看起来很困难,但有一个可以用于学习的环境真是太好了。
通常来说,Kubernetes是在多个节点上运行的,但似乎也可以在一个节点上运行。

请确认所需规格。

来自Minikube启动指南

 

項目必要スペックCPU2CPUMEM2GBDISK20GB

在家里的云端上搭建和运行具备上述规格的AlmaLinux8.6。
搭建家庭云端后,可以随时创建虚拟机,非常方便。

小型库环境建设

事先安装Docker。
有关Docker的安装,请参考这篇文章。
不一定需要安装Docker compose吗?

 

下载并运行minikube文件,将其添加到路径中。

# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# install minikube-linux-amd64 /usr/local/bin/minikube

运行Minikube

如果以root权限执行,请加上–force选项。

# minikube start --force
?  Almalinux 8.6 上の minikube v1.28.0
❗  minikube は --force が付与された場合、様々な検証をスキップします (これは予期せぬ挙動を引き起こすかも知れません)
✨  docker ドライバーが自動的に選択されました。他の選択肢: ssh, none
?  「docker」ドライバーは root 権限で使用すべきではありません。root での継続を希望する場合、--force を使用してください。
?  VM 内で minikube を実行している場合、--driver=none の使用を検討してください:
?    https://minikube.sigs.k8s.io/docs/reference/drivers/none/

⛔  要求されたメモリー割り当て (1811MB) が推奨の最小値 1900MB 未満です。デプロイは失敗するかもしれません。


?  要求された 1811MiB のメモリー割当は、システムのオーバーヘッド (合計システムメモリー: 1811MiB) に十分な空きを残しません。安定性の問題に直面するかも知れません。
?  提案: Start minikube with less memory allocated: 'minikube start --memory=1811mb'

?  root 権限を持つ Docker ドライバーを使用
?  minikube クラスター中のコントロールプレーンの minikube ノードを起動しています
?  ベースイメージを取得しています...
?  ロード済み Kubernetes v1.25.3 をダウンロードしています...
    > preloaded-images-k8s-v18-v1...:  385.44 MiB / 385.44 MiB  100.00% 97.26 M
    > gcr.io/k8s-minikube/kicbase:  386.27 MiB / 386.27 MiB  100.00% 14.26 MiB 
    > gcr.io/k8s-minikube/kicbase:  0 B [________________________] ?% ? p/s 13s
?  docker container (CPUs=2, Memory=1811MB) を作成しています...
?  Docker 20.10.20 で Kubernetes v1.25.3 を準備しています...
    ▪ 証明書と鍵を作成しています...
    ▪ コントロールプレーンを起動しています...
    ▪ RBAC のルールを設定中です...
?  Kubernetes コンポーネントを検証しています...
    ▪ gcr.io/k8s-minikube/storage-provisioner:v5 イメージを使用しています
?  有効なアドオン: default-storageclass, storage-provisioner
?  kubectl が見つかりません。kubectl が必要な場合、'minikube kubectl -- get pods -A' を試してください
?  終了しました!kubectl がデフォルトで「minikube」クラスターと「default」ネームスペースを使用するよう設定されました

当收到显示已完成的消息后即表示完成。
在安装过程中出现了内存不足的提示信息,但通过使用swap,是否设法安装成功了呢?
根据消息,可以看出他们正在使用Docker来搭建。

确认容器的启动状态

可以通过使用Docker来确认Kubernetes集群正在运行。

# docker ps
CONTAINER ID   IMAGE                                 COMMAND                  CREATED         STATUS         PORTS                                                                                                                                  NAMES
eecfd2f5c752   gcr.io/k8s-minikube/kicbase:v0.0.36   "/usr/local/bin/entr…"   6 minutes ago   Up 6 minutes   127.0.0.1:32772->22/tcp, 127.0.0.1:32771->2376/tcp, 127.0.0.1:32770->5000/tcp, 127.0.0.1:32769->8443/tcp, 127.0.0.1:32768->32443/tcp   minikube

使用kubectl

当运行Minikube时,好像也会同时附带kubectl。但由于现在必须使用”minikube kubectl”命令来执行,所以使用起来不太方便。

# minikube kubectl -- get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-565d847f94-bdq7s           1/1     Running   0             18m
kube-system   etcd-minikube                      1/1     Running   0             18m
kube-system   kube-apiserver-minikube            1/1     Running   0             18m
kube-system   kube-controller-manager-minikube   1/1     Running   0             18m
kube-system   kube-proxy-jjxnf                   1/1     Running   0             18m
kube-system   kube-scheduler-minikube            1/1     Running   0             18m
kube-system   storage-provisioner                1/1     Running   1 (18m ago)   18m

通过编写别名,使得可以在 kubectl 中执行。

# alias kubectl="minikube kubectl --"
[root@minikube ~]# kubectl get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-565d847f94-bdq7s           1/1     Running   0             22m
kube-system   etcd-minikube                      1/1     Running   0             22m
kube-system   kube-apiserver-minikube            1/1     Running   0             22m
kube-system   kube-controller-manager-minikube   1/1     Running   0             22m
kube-system   kube-proxy-jjxnf                   1/1     Running   0             22m
kube-system   kube-scheduler-minikube            1/1     Running   0             22m
kube-system   storage-provisioner                1/1     Running   1 (21m ago)   22m

这次,我写了别名并配置了minikube的kubectl命令,不过好像还是可以安装kubectl。

确认集群配置

我成功启动了控制面板(主节点)并确认了内部DNS的终端点。

# kubectl cluster-info
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查询节点状态

由于minikube是单节点运行的,所以只显示一个。

# kubectl get node
NAME       STATUS   ROLES           AGE    VERSION
minikube   Ready    control-plane   121m   v1.25.3

其他minikube指令

コマンド内容minikube start仮想マシンを起動するminikube stop仮想マシンを停止minikube delete仮想マシンを削除minikube status起動状態を確認するminikube ip仮想マシンのIPアドレスを確認minikube ssh仮想マシンへSSH接続するminikube addons listアドオンリストを表示するminikube dashboardKubernetesダッシュボードを起動

是外部服务器的问题吗?以下部分无法正常工作…(找时间来查找解决方法)

使用仪表盘

添加插件后可以使用。

# minikube addons enable metrics-server
?  metrics-server is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub.
You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS
    ▪ k8s.gcr.io/metrics-server/metrics-server:v0.6.1 イメージを使用しています
?  'metrics-server' アドオンが有効です

可以启动仪表盘。
也可以添加 –url 选项。

# minikube dashboard

使用Grafana

# minikube addons enable heapster
⌛  metrics-server アドオンを使用します (heapster は廃止予定です)
?  metrics-server is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub.
You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS
    ▪ k8s.gcr.io/metrics-server/metrics-server:v0.6.1 イメージを使用しています
?  'metrics-server' アドオンが有効です
# kubectl get svc --all-namespaces
NAMESPACE              NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default                kubernetes                  ClusterIP   10.96.0.1        <none>        443/TCP                  104m
kube-system            kube-dns                    ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   104m
kube-system            metrics-server              ClusterIP   10.108.86.162    <none>        443/TCP                  76m
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   10.109.205.197   <none>        8000/TCP                 81m
kubernetes-dashboard   kubernetes-dashboard        ClusterIP   10.105.102.28    <none>        80/TCP                   81m

目前 minikube 似乎是正常运行的,所以我们可以继续进行。

广告
将在 10 秒后关闭
bannerAds