K8s--リソースモニタリング

1.メトリクス-サーバーの展開

Metrics-Serverは、クラスターのコアモニタリングデータのアグリゲーターであり、以前のヒープスターを置き換えるために使用されます。
コンテナ関連の指標は、主にkubeletに組み込まれているcAdvisorサービスから取得されます。Metrics-Serverを使用すると、ユーザーは標準のKubernetesAPIを介してこれらのモニタリングデータにアクセスできます。
Metrics APIは、現在のメトリックデータのみをクエリでき、履歴データは保存しません。
Metrics API URIは/apis/metrics.k8s.io/であり、k8s.io / metricsで維持されます。
このAPIを使用するには、metrics-serverをデプロイする必要があります。metrics-serverは、Kubelet SummaryAPIを呼び出してデータを取得します。

1.関連リソースを入手する

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml  %下载部署文件

docker pull bitnami/metrics-server:0.4.2    %拉取相关镜像
docker push reg.westos.org/library/metrics-server:0.4.2  %上传镜像到私有仓库中(在这之前要对镜像做tag)

修改yaml文件中的镜像路径为metrics-server:0.4.2   %默认在私有仓库的library项目下查找

ここに画像の説明を挿入
ここに画像の説明を挿入

2.エラーの問題を解決します

デプロイメントファイルを適用した後、ポッドのステータスを確認すると、準備ができていないことがわかります。この場合、有効になりません。
ここに画像の説明を挿入
ログで問題の原因を確認してください。

kubectl logs -n kube-system metrics-server-xxxxxxx

ここに画像の説明を挿入
上記のエラーメッセージは、証明書のチェックに失敗したことが原因で発生します。この問題を解決するには、公式ドキュメントを確認してください。

启用TLS Bootstrap 证书签发
vim /var/lib/kubelet/config.yaml  %所有节点的这个文件都要修改并重启kubelet服务
...
serverTLSBootstrap: true     %跳过证书检查
systemctl  restart kubelet   %重启kubelet服务
kubectl certificate approve 证书名称  %签发证书

ここに画像の説明を挿入ここに画像の説明を挿入

3.展開が成功したかどうかを確認します

ここに画像の説明を挿入
ここに画像の説明を挿入

4.テスト結果

ノードとポッドのCPUとメモリの負荷を確認できます
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

2.ダッシュボードの展開

ダッシュボードは、現在のクラスターのさまざまな情報を表示するための視覚的なWebインターフェイスをユーザーに提供できます。ユーザーはKubernetesダッシュボードを使用して、コンテナ化されたアプリケーションのデプロイ、アプリケーションのステータスの監視、トラブルシューティングタスクの実行、さまざまなKubernetesリソースの管理を行うことができます。

1.デプロイメントファイルをダウンロードし、関連するイメージをプルします

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

镜像:
kubernetesui/dashboard:v2.2.0
kubernetesui/metrics-scraper:v1.0.6

上传镜像到私有仓库,此时路径需要对应,可以在私有仓库中创建kubernetesui项目,然后把这两个镜像放到该项目下,或者更改yaml文件中的镜像路径

2.デプロイメントファイルを適用し、外部アクセス用にNodePortモードに変更します

kubectl apply -f recommended.yaml     %应用部署文件
kubectl -n kubernetes-dashboard describe svc kubernetes-dashboard   %查看其创建的svc的详细信息

ここに画像の説明を挿入
ここに画像の説明を挿入

 kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard   %更改为NodePort方式
 kubectl -n kubernetes-dashboard get svc    %查看是否已经更改

ここに画像の説明を挿入
ここに画像の説明を挿入

3.トークンを生成し、トークンを使用してログインします

kubectl -n kubernetes-dashboard get secrets  %查看secrets名字
NAME                               TYPE                                  DATA   AGE
default-token-h95lm                kubernetes.io/service-account-token   3      10m
kubernetes-dashboard-certs         Opaque                                0      10m
kubernetes-dashboard-csrf          Opaque                                1      10m
kubernetes-dashboard-key-holder    Opaque                                2      10m
kubernetes-dashboard-token-kcw7s   kubernetes.io/service-account-token   3      10m

kubectl describe secrets  kubernetes-dashboard-token-kcw7s -n kubernetes-dashboard  %查看具体token
kubectl -n kubernetes-dashboard describe secrets kubernetes-dashboard-token-xxxx  %查看token的另外一种方法

kubectl get svc -n kubernetes-dashboard    %查看端口映射
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.111.253.105   <none>        8000/TCP        4m31s
kubernetes-dashboard        NodePort    10.110.193.162   <none>        443:32427/TCP   4m31s

アクセスするときは、httpsモードでIPと公開ポート番号にアクセスする必要があります。
ここに画像の説明を挿入

4.デフォルトのダッシュボードにはクラスターに対する操作権限がなく、関連する承認が必要です

vim rbac.yaml:      %编辑rbac.yaml文件做RBAC授权
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard  
kubectl apply -f rbac.yaml    %应用部署文件

承認前のページの表示:承認
ここに画像の説明を挿入
後にクラスター内のリソースを表示および管理するための警告多数あります
ここに画像の説明を挿入
ここに画像の説明を挿入
作成されたポッドのyamlファイルを表示および編集して、ポッドを作成または更新する目的を達成できます。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/nk298120/article/details/115238069