OpenShift 3.11のmetrics-server

Red HatでOpenShiftのサポートをしているid:nekopです。OpenShift 全部俺 Advent Calendar 2018 - Qiitaの9日目のエントリです。

OpenShift 3.11以前ではopenshfit-infraプロジェクトのheapsterコンポーネントを利用してHPA (Horizontal Pod Autoscaler)やoc adm topコマンドが動作していました。3.11ではこのheapsterを含むHawkular Metricsスタックが非推奨になり、かわりにmetrics-serverが用意されています。

metrics-serverがインストールされていない場合は以下のplaybookでインストールできます。

ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/metrics-server/config.yml -e openshift_metrics_server_install=true

oc adm topコマンドなどメトリクスを利用するサービスはAPI extension v1beta1.metrics.k8s.ioが登録されている場合、そちらを利用してメトリクス情報にアクセスします。登録されていない場合はheapsterにフォールバックします。v1beta1.metrics.k8s.ioの実体はopenshift-metrics-serverプロジェクトのmetrics-serverサービスとなっています。

$ oc adm top pod
NAME                       CPU(cores)   MEMORY(bytes)   
docker-registry-1-q4q2r    1m           507Mi           
registry-console-1-c6zxk   0m           5Mi             
router-1-n8nlf             2m           39Mi            
router-1-pdt7p             2m           40Mi            
router-1-z958d             2m           40Mi      

oc adm top pod -n defaultコマンドに--loglevel=7オプションを付与すると以下のリクエストが発行されていることがわかります。

GET https://master.example.com:443/apis/metrics.k8s.io/v1beta1/namespaces/default/pods

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません