k8sリソースモニタリング

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

1.メトリクス-サーバーはクラスターコアモニタリングデータのアグリゲーターであり、以前のヒープスターを置き換えるために使用されます。
2.コンテナ関連の指標は、主にkubeletの組み込みcAdvisorサービスから取得されます。Metrics-Serverを使用すると、ユーザーは標準のKubernetesAPIを介してこれらのモニタリングデータにアクセスできます。
Metrics APIは、現在のメトリックデータのみをクエリでき、履歴データは保存しません。
Metrics API URIは/apis/metrics.k8s.io/であり、k8s.io / metricsで維持されます。
このAPIを使用するには、Metrics-serverをデプロイする必要があります。Metrics-serverは、Kubelet SummaryAPIを呼び出してデータを取得します
。3。MetricsServerは、kube-apiserverの一部ではなく、Aggregatorのプラグインメカニズムを介して取得します。独立した場合展開では、kube-apiserverが外部サービスを統合するのと同じです。
4. kube-aggregatorは、実際にはURLに従って特定のAPIバックエンドを選択するプロキシサーバーです
ここに画像の説明を挿入します
。5。Metrics-serverはコアメトリクス(コアメトリクス)に属し、APImetrics.k8s.ioを提供し、CPUとメモリのみを提供します。ノードとポッドの使用法。その他のカスタムメトリクス(カスタムメトリクス)は、Prometheusなどのコンポーネントによって完成されます。

リソースのダウンロード、外部サーバーgiteeはgithubリソースを同期します

# 准备部署文件
server2
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml  #提前下好所需镜像并上传到本地仓库,在文件中注意修改镜像拉取位置
# 准备本地镜像
server1
docker search metrics-server
docker pull bitnami/metrics-server:0.4.0
docker tag bitnami/metrics-server:0.4.0 reg.westos.org/library/metrics-server:0.4.0
docker push reg.westos.org/library/metrics-server:0.4.0

ここに画像の説明を挿入します
ここに画像の説明を挿入します

# 部署
kubectl apply -f components.yaml
kubectl get pod -n kube-system
kubectl get svc -n kube-system
kubectl describe pod metrics-server-cc476ccf8-t7j8t -n kube-system
kubectl logs -n kube-system metrics-server-cc476ccf8-t7j8t  #部署后查看Metrics-server的Pod日志

ここに画像の説明を挿入します
ここに画像の説明を挿入します
エラー1:x509:不明な機関によって署名された証明書
Metric Serverはparameter-kubelet-insecure-tlsをサポートしています。このチェックはスキップできますが、当局はこの方法は本番環境での使用には推奨されないとも明確に述べています。
ここに画像の説明を挿入します

# 启用TLS Bootstrap 证书签发
vim /var/lib/kubelet/config.yaml  # 所有节点都需要修改
serverTLSBootstrap: true
systemctl  restart kubelet
kubectl get csr
kubectl certificate approve csr-4tdc7
kubectl top node
kubectl -n kube-system top pod

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
考えられるエラー2:ダイヤルtcp:10.96.0.10:53のルックアップサーバー2:そのようなホスト
はありませんこれは、内部DNSサーバーがないため、metrics-serverがノード名を解決できないためです。coredns configmapを直接変更し、各ノードのホスト名をホストに追加して、すべてのポッドがCoreDNSから各ノードの名前を解決できるようにすることができます。

 kubectl edit configmap coredns -n kube-system
apiVersion: v1
data:
  Corefile: |
    ...
        ready
        hosts {
           172.25.2.4 server4
           172.25.2.2 server2
           172.25.2.3 server3
           fallthrough
        }
        kubernetes cluster.local in-addr.arpa ip6.arpa {

エラー3が発生する可能性があります:サーバーからのエラー(ServiceUnavailable):サーバーは現在リクエストを処理できません(getnodes.metrics.k8s.io)
metrics-serverがエラーなしで正常に起動する場合は、ネットワークの問題である可能性があります。メトリックのポッドネットワークモードを変更します-server:hostNetwork:true
ここに画像の説明を挿入します

# 部署成功后
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes/server2"

ここに画像の説明を挿入します

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

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

k8s master server2
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml  #下载部署文件
vim recommended.yaml  #修改镜像拉取位置,下载并上传镜像
本地仓库 server1
docker pull kubernetesui/dashboard:v2.2.0
docker tag kubernetesui/dashboard:v2.2.0 reg.westos.org/kubernetesui/dashboard:v2.2.0
docker push reg.westos.org/kubernetesui/dashboard:v2.2.0
docker pull kubernetesui/metrics-scraper:v1.0.6
docker tag kubernetesui/metrics-scraper:v1.0.6 reg.westos.org/kubernetesui/metrics-scraper:v1.0.6
docker push reg.westos.org/kubernetesui/metrics-scraper:v1.0.6

ここに画像の説明を挿入します

server2
kubectl apply -f recommended.yaml

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ダッシュボードへの仮想IPアクセスを実現するには、MetallbをLoadBalancerタイプのサービスと組み合わせて参照してください。これは、外部アクセスに便利です
ここに画像の説明を挿入します
kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard
ここに画像の説明を挿入します
ここに画像の説明を挿入します

外部访问,登陆dashboard需要认证,需要获取dashboard pod的token
kubectl get sa -n kubernetes-dashboard
kubectl describe -n kubernetes-dashboard secrets kubernetes-dashboard-token-4jr24

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ダッシュボードがmetrics-serverデータを表示できない場合は、次の2つの方法で解決できます
。dashboard-metrics-scraperのポッドネットワークモードを変更します。hostNetwork:
ノードまたはポッドのアフィニティ設定でtrueにし、dashboard-metrics-scraperとメトリックのポッド-サーバーは同じノードノード上にあります

# 默认dashboard对集群没有操作权限,需要授权
# 集群角色绑定
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

ここに画像の説明を挿入します
ポッドを作成する
ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_49564346/article/details/114301908
おすすめ