uni farm

kopsを使ってaws上に構築したkubernetesクラスタにaddon(dashboard系)を追加する

kopsを使ってaws上に構築したkubernetesクラスタにkubernetes dashboard、weave scopeを追加する

手順とアクセス方法を書いていく

環境

  • macOS: 10.13.x
  • kops: 1.7.0
  • kubelet: 1.7.2
  • kubernetes dashboard: 1.7.1
  • weave scope: 1.6.5

インストールコマンドのURLは公式ページをみて適宜書き換えてください

kubernetes dashboard

クラスタの管理をブラウザから行うことができる。 現在の設定やpodの状態の閲覧、新しくpodのデプロイなどができる。

インストール

手順はほとんど参考ページを翻訳しただけ

kubectl create -f https://raw.githubusercontent.com/kubernetes/kops/master/addons/kubernetes-dashboard/v1.7.1.yaml

を実行すると、dashboard用のpodやらserviceが作成される

しばらく待つとpodのSTATUSがrunningになるはず

kubectl get po,svc -n kube-system | grep dashboard
po/kubernetes-dashboard-2323822625-3f6ql 1/1 Running 0 7d
    
svc/kubernetes-dashboard 100.67.144.72 <none> 80/TCP 7d

アクセス方法

外部

masterのエンドポイントからみることができる。

kubectl cluster-info
Kubernetes master is running at https://api-xxxx.elb.amazonaws.com
KubeDNS is running at https://api-xxxx.elb.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns/proxy

この場合はhttps://api-xxxx.elb.amazonaws.com/ui にアクセスすることでみることができる

保護されていない通信です、とか出るけど無視してアクセスすると(いいのか?)、

basic認証がかかっているのでアカウント情報を入力する。usernameとpasswordは、~/.kube/config内に書いてある

...
- name: "クラスタ名"
  user:
    client-certificate-data: "なんか長いtoken文字列"
    client-key-data: "なんか長いtoken文字列"
    password: "パスワード"
    username: admin
...

ローカル

ローカルでみたいときは下のコマンドを実行すると、http://localhost:8001/ui からアクセスすることができる

kubectl proxy
Starting to serve on 127.0.0.1:8001

dashboard

weave scope

CPUの使用率などのリソースをリアルタイムで監視できる。podのネットワークが図でみれたりする。

インストール

クエリにk8s-service-type=LoadBalancerを指定することで

新たにロードバランサーを作り、ネットワーク外部からアクセスできるようになる。

kubectl create -n kube-system -f
'https://cloud.weave.works/k8s/scope.yaml?k8s-service-type=LoadBalancer'

podのSTATUSがRunningなっているのを確認。

kubectl get po,svc -n kube-system | grep weave
po/weave-scope-agent-qpzlh 1/1 Running 4 13d
po/weave-scope-agent-v10xd 1/1 Running 1 13d
po/weave-scope-app-2977049826-khcj1 1/1 Running 3 12d
    
svc/weave-scope-app 100.68.22.184 "external-ip" 80:31556/TCP 19d

アクセス方法

外部

ロードバランサーのエンドポイント(上コマンドの”external-ip”部分)がアクセス先になる。

ローカル

ローカルでみたいときは下のコマンドを実行すると、http://localhost:4040 でみることができる(コマンドの意味はよくわかってない)

kubectl port-forward -n kube-system "$(kubectl get -n kube-system pod --selector=weave-scope-component=app -o jsonpath='{.items..metadata.name}')" 4040

weave scope

kube-systemに色々なpodが設置されているのがわかる

参考

2022, Built with Gatsby. This site uses Google Analytics.