1. はじめに
IBM Cloud Monitoring with SysdigやIBM Cloud Log Analysis with LogDNAをRed Hat OpenShift on IBM Cloud(以下ROKS)やIBM Cloud Kubernetes Service(以下IKS)環境で利用している人は多いと思う。でも、よく考えたら、これって導入した後に定期的な更新を全然やっていないことに気がついた。これ、本当は更新しておかないといけないはずだけど、どうなっているんだっけ・・・?って思って、調べてみた。
2. 結論
これらのサービスがIBM Cloudのポータル画面経由で導入されると、ibm-observe
というnamespace上で稼働する。
[root@new-syasuda-tok1-vpc1 ~]# oc get daemonsets -n ibm-observe
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
logdna-agent 2 2 2 2 2 <none> 47d
sysdig-agent 2 2 2 2 2 <none> 47d
そして、以下のようにimagePullPolicyがAlwaysになっているため、コンテナーが再起動する度に、最新のイメージが取得されるようだ。つまり、IKS/ROKSに対して継続的にupdateを適用していれば、その際にworker nodeの入れ替えやコンテナーの再起動が発生するため、自動的に最新イメージがpullされるため、利用者としては継続して最新化されていると思って良いだろう。
ただし、
- これらのAgentのバージョンを固定化したいのであれば、マニフェストファイルを編集する必要がある。
- IBM Cloud Log Analysis with LogDNAについてはVersion 2(安定版)を利用しており、Version 3を利用するためにはやはりマニフェストファイルの更新が必要になる(後述)。
[root@new-syasuda-tok1-vpc1 ~]# oc get daemonsets sysdig-agent -n ibm-observe -o jsonpath="{.spec.template.spec.containers[*]"} | jq | grep image
"image": "icr.io/ext/sysdig/agent",
"imagePullPolicy": "Always",
[root@new-syasuda-tok1-vpc1 ~]# oc get daemonsets logdna-agent -n ibm-observe -o jsonpath="{.spec.template.spec.containers[*]"} | jq | grep image
"image": "icr.io/ext/logdna-agent:stable",
"imagePullPolicy": "Always",
3. IBM Cloud Monitoring with Sysdigの場合
[root@new-syasuda-tok1-vpc1 ~]# oc get pods -n ibm-observe
NAME READY STATUS RESTARTS AGE
logdna-agent-bs7s9 1/1 Running 3 (7d11h ago) 48d
logdna-agent-f2bpc 1/1 Running 5 (7d11h ago) 48d
sysdig-agent-b7fb6 1/1 Running 0 48d
sysdig-agent-ffhf4 1/1 Running 0 48d
以下のようにdaemonsetにはタグ情報が記載されていないので、イメージとしては暗黙的にicr.io/ext/sysdig/agent:latest
が利用される。
[root@new-syasuda-tok1-vpc1 ~]# oc get daemonsets sysdig-agent -n ibm-observe -o jsonpath="{.spec.template.spec.containers[*]"} | jq | grep image
"image": "icr.io/ext/sysdig/agent",
"imagePullPolicy": "Always",
[root@new-syasuda-tok1-vpc1 ~]# oc get pod sysdig-agent-b7fb6 -n ibm-observe -o jsonpath="{.status.containerStatuses}" | jq
[
{
"containerID": "cri-o://95f02ce1626a19e79270f5591b48470bee175aba690c80c999f836202f81318c",
"image": "icr.io/ext/sysdig/agent:latest",
"imageID": "icr.io/ext/sysdig/agent@sha256:df39741e0cd0ad20f56ca6cac092586d9d14ba25708a42fe7e3c490ac7eea56f",
"lastState": {},
"name": "sysdig-agent",
"ready": true,
"restartCount": 0,
"started": true,
"state": {
"running": {
"startedAt": "2022-10-06T07:19:26Z"
}
}
}
]
以下で、現在icr.ioに存在するイメージを確認してみる。
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr region-set global
The region is set to 'global', the registry is 'icr.io'.
OK
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/sysdig/agent --no-trunc | grep -e Tag -e df39741e0cd0ad20f56ca6cac092586d9d14ba25708a42fe7e3c490ac7eea56f
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/sysdig/agent 12.8.1 sha256:df39741e0cd0ad20f56ca6cac092586d9d14ba25708a42fe7e3c490ac7eea56f ext 2 months ago 731 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/sysdig/agent --no-trunc | grep -e Tag -e latest
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/sysdig/agent latest sha256:45b10702667b33b0663dd23164fc9f928945083060c14c3dd1e4b538b9348942 ext 1 week ago 696 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/sysdig/agent --no-trunc | grep -e Tag -e 45b10702667b33b0663dd23164fc9f928945083060c14c3dd1e4b538b9348942
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/sysdig/agent 12.9.1 sha256:45b10702667b33b0663dd23164fc9f928945083060c14c3dd1e4b538b9348942 ext 1 week ago 696 MB -
icr.io/ext/sysdig/agent latest sha256:45b10702667b33b0663dd23164fc9f928945083060c14c3dd1e4b538b9348942 ext 1 week ago 696 MB -
Sysdig agentのrelease notesはこちら。
これらのハッシュ値の結果から、現在はversion 12.8.1を利用しており、最新化するとversion 12.9.1になることがわかる。ここで、daemonsetを再起動すると、以下のように12.9.1に直ちに最新化された。(ちなみに、IBM cloud docsにはAgentのバージョン指定で更新する方法が記載されているが、最新バージョンに更新するならば、このように再起動するだけの方が簡単だと思う。)
[root@new-syasuda-tok1-vpc1 ~]# oc rollout restart daemonset sysdig-agent -n ibm-observe
daemonset.apps/sysdig-agent restarted
[root@new-syasuda-tok1-vpc1 ~]# oc get pods -n ibm-observe
NAME READY STATUS RESTARTS AGE
logdna-agent-bs7s9 1/1 Running 3 (7d11h ago) 48d
logdna-agent-f2bpc 1/1 Running 5 (7d11h ago) 48d
sysdig-agent-b9tlg 0/1 Running 0 27s
sysdig-agent-tx6q7 0/1 Running 0 25s
[root@new-syasuda-tok1-vpc1 ~]# oc get pod sysdig-agent-b9tlg -n ibm-observe -o jsonpath="{.status.containerStatuses}" | jq
[
{
"containerID": "cri-o://a3c695e1c17c5a8bffb1b23fe54c7a7535bdbeb2b808a541c59c479f300cb0b3",
"image": "icr.io/ext/sysdig/agent:latest",
"imageID": "icr.io/ext/sysdig/agent@sha256:45b10702667b33b0663dd23164fc9f928945083060c14c3dd1e4b538b9348942",
"lastState": {},
"name": "sysdig-agent",
"ready": true,
"restartCount": 0,
"started": true,
"state": {
"running": {
"startedAt": "2022-11-24T01:52:12Z"
}
}
}
]
4. IBM Cloud Log Analysis with LogDNAの場合
IBM Cloud Monitoring with Sysdigの時と違って、イメージ名をicr.io/ext/logdna-agent:stable
のようにタグで指定している。
[root@new-syasuda-tok1-vpc1 ~]# oc get daemonsets logdna-agent -n ibm-observe -o jsonpath="{.spec.template.spec.containers[*]"} | jq | grep image
"image": "icr.io/ext/logdna-agent:stable",
"imagePullPolicy": "Always",
[root@new-syasuda-tok1-vpc1 ~]# oc get pods -n ibm-observe
NAME READY STATUS RESTARTS AGE
logdna-agent-bs7s9 1/1 Running 3 (7d11h ago) 48d
logdna-agent-f2bpc 1/1 Running 5 (7d11h ago) 48d
sysdig-agent-b9tlg 1/1 Running 0 2m51s
sysdig-agent-tx6q7 1/1 Running 0 4m13s
[root@new-syasuda-tok1-vpc1 ~]# oc get pod logdna-agent-bs7s9 -n ibm-observe -o jsonpath="{.status.containerStatuses}" | jq
[
{
"containerID": "cri-o://f6210f6e78468d77ece205f29fe12093be6a66507db24d8ace463875e9f6f02a",
"image": "icr.io/ext/logdna-agent:stable",
"imageID": "icr.io/ext/logdna-agent@sha256:f23a81c2653187be7211478b535e3af2d3e37f6e5e4d7503147a2287b21f4c3d",
"lastState": {
"terminated": {
"containerID": "cri-o://4bed432257c30a50a16b2dfa3b134ba2c1fb95d25f857268712fbae52dcff1cf",
"exitCode": 139,
"finishedAt": "2022-11-16T13:15:27Z",
"reason": "Error",
"startedAt": "2022-11-16T13:08:45Z"
}
},
"name": "logdna-agent",
"ready": true,
"restartCount": 3,
"started": true,
"state": {
"running": {
"startedAt": "2022-11-16T13:16:54Z"
}
}
}
]
以下で、該当イメージを検索してみる。
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr region-set global
The region is set to 'global', the registry is 'icr.io'.
OK
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/logdna-agent --no-trunc | grep -e Tag -e f23a81c2653187be7211478b535e3af2d3e37f6e5e4d7503147a2287b21f4c3d
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/logdna-agent 2.2.8-20221114.dc2e7002d839 sha256:f23a81c2653187be7211478b535e3af2d3e37f6e5e4d7503147a2287b21f4c3d ext 1 week ago 125 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/logdna-agent --no-trunc | grep -e Tag -e " stable "
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/logdna-agent stable sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/logdna-agent --no-trunc | grep -e Tag -e a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/logdna-agent 2 sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
icr.io/ext/logdna-agent 2.2 sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
icr.io/ext/logdna-agent 2.2.8 sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
icr.io/ext/logdna-agent 2.2.8-20221121.561180815f8f sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
icr.io/ext/logdna-agent stable sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
icr.io/ext/logdna-agent v2-stable sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23 ext 2 days ago 125 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/logdna-agent --no-trunc | grep -e Tag -e latest
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/logdna-agent latest sha256:94981ab6a8d46fcbce3d9c4191ad2e19b30a090ed390f1d0660b4106acf4e3db ext 2 years ago 59 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/logdna-agent --no-trunc | grep -e Tag -e 94981ab6a8d46fcbce3d9c4191ad2e19b30a090ed390f1d0660b4106acf4e3db
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/logdna-agent 1.6.2 sha256:94981ab6a8d46fcbce3d9c4191ad2e19b30a090ed390f1d0660b4106acf4e3db ext 2 years ago 59 MB -
icr.io/ext/logdna-agent 1.6.2-20200409 sha256:94981ab6a8d46fcbce3d9c4191ad2e19b30a090ed390f1d0660b4106acf4e3db ext 2 years ago 59 MB -
icr.io/ext/logdna-agent latest sha256:94981ab6a8d46fcbce3d9c4191ad2e19b30a090ed390f1d0660b4106acf4e3db ext 2 years ago 59 MB -
[root@new-syasuda-tok1-vpc1 ~]# ibmcloud cr images --restrict ext/logdna-agent --no-trunc | grep -e Tag -e ' 3.7'
Repository Tag Digest Namespace Created Size Security status
icr.io/ext/logdna-agent 3.7 sha256:891ee3ff95fb4492c1b85edc8e2bc6d84994ba2e256537af1501e12a6c2bd9be ext - 743 B -
icr.io/ext/logdna-agent 3.7-amd64 sha256:e5691f7d8fa1c31592f95cefbd4dec8994087f04f9b7115268ac12c7b8be64d9 ext 2 days ago 131 MB -
icr.io/ext/logdna-agent 3.7-arm64 sha256:44b42007a198964d69016612bba1aa30f835424d3923430f416852b7971f8734 ext 2 days ago 129 MB -
icr.io/ext/logdna-agent 3.7.0 sha256:891ee3ff95fb4492c1b85edc8e2bc6d84994ba2e256537af1501e12a6c2bd9be ext - 743 B -
icr.io/ext/logdna-agent 3.7.0-20221020.a98a55ec1b327e82 sha256:722427abfab7c20507aafe6a7f2be8d8dadfc2640913b18cf0c63ea31ddc7e27 ext - 743 B -
icr.io/ext/logdna-agent 3.7.0-20221020.a98a55ec1b327e82-amd64 sha256:fe29af01fd5b60cd24e5d3574de70cf33ea110dc6cdb85afc12b877569650644 ext 1 month ago 110 MB -
icr.io/ext/logdna-agent 3.7.0-20221020.a98a55ec1b327e82-arm64 sha256:f98a911833f7b3346f3148798dcb7118429c6f711addf6e177a751fc2d05ec94 ext 1 month ago 108 MB -
icr.io/ext/logdna-agent 3.7.0-20221107.6441deae7152ea0b sha256:9a78a971a2180031dbf93b6a541acf53c2d71e53f7529ea0d084782c32a4f8be ext - 743 B -
icr.io/ext/logdna-agent 3.7.0-20221107.6441deae7152ea0b-amd64 sha256:204a04672901372914966ca1babfccfea75fff2bfba058485e07342a123769d0 ext 2 weeks ago 129 MB -
icr.io/ext/logdna-agent 3.7.0-20221107.6441deae7152ea0b-arm64 sha256:b72b03ae5d87852004d8f63d55a76fa7cc06692cee16939f536cf3c8dc2b625e ext 2 weeks ago 126 MB -
icr.io/ext/logdna-agent 3.7.0-20221115.da825b2ba12f0a74 sha256:84b4b055b5e3bf0b57399d32090e83ce6d673849fe3894bf16d17b1ee869a84b ext - 743 B -
icr.io/ext/logdna-agent 3.7.0-20221115.da825b2ba12f0a74-amd64 sha256:9d73e4362e95c29676af41d781f667a8161baeafeec191d698d472f500afbcc5 ext 1 week ago 131 MB -
icr.io/ext/logdna-agent 3.7.0-20221115.da825b2ba12f0a74-arm64 sha256:dec37d5b1a904ff200f0bbe03c5c506b22afce30e5276da3fd068f0a74dee785 ext 1 week ago 129 MB -
icr.io/ext/logdna-agent 3.7.0-20221121.e92301baa3528d02 sha256:891ee3ff95fb4492c1b85edc8e2bc6d84994ba2e256537af1501e12a6c2bd9be ext - 743 B -
icr.io/ext/logdna-agent 3.7.0-20221121.e92301baa3528d02-amd64 sha256:e5691f7d8fa1c31592f95cefbd4dec8994087f04f9b7115268ac12c7b8be64d9 ext 2 days ago 131 MB -
icr.io/ext/logdna-agent 3.7.0-20221121.e92301baa3528d02-arm64 sha256:44b42007a198964d69016612bba1aa30f835424d3923430f416852b7971f8734 ext 2 days ago 129 MB -
icr.io/ext/logdna-agent 3.7.0-amd64 sha256:e5691f7d8fa1c31592f95cefbd4dec8994087f04f9b7115268ac12c7b8be64d9 ext 2 days ago 131 MB -
icr.io/ext/logdna-agent 3.7.0-arm64 sha256:44b42007a198964d69016612bba1aa30f835424d3923430f416852b7971f8734 ext 2 days ago 129 MB -
これらの結果からわかるように、2022年11月24日現在、logdna-agent:stable
は最新のversion 3ではなく、logdna-agent:2.2.8
を指している。また、logdna-agent:latest
はあろうことか、logdna-agent:1.6.2
を指している。この驚きの事実(!?)は、IBM Cloud docsにも以下のように説明されている。
いったんVersion 2のまま安定版を利用し続けたいのであれば、やはりPodを再起動するだけで良い。今回は2.2.8-20221114.dc2e7002d839
から2.2.8-20221121.561180815f8f
の変更であり、何らかの問題があって一週間程度でfixがリリースされたのであろう。
もしVersion 3に更新したいのであれば、こちらを参考。
[root@new-syasuda-tok1-vpc1 ~]# oc rollout restart daemonset logdna-agent -n ibm-observe
daemonset.apps/logdna-agent restarted
[root@new-syasuda-tok1-vpc1 ~]# oc get pods -n ibm-observe
NAME READY STATUS RESTARTS AGE
logdna-agent-2p6p4 1/1 Running 0 20s
logdna-agent-75pxm 1/1 Running 0 19s
sysdig-agent-b9tlg 1/1 Running 0 7m56s
sysdig-agent-tx6q7 1/1 Running 0 9m18s
[root@new-syasuda-tok1-vpc1 ~]# oc get pod logdna-agent-2p6p4 -n ibm-observe -o jsonpath="{.status.containerStatuses}" | jq
[
{
"containerID": "cri-o://f4c42b092a44d960a58c46ab23383137d2dc69133a6fcab6a55c961b9ddf8556",
"image": "icr.io/ext/logdna-agent:stable",
"imageID": "icr.io/ext/logdna-agent@sha256:a52f2e44ad7db9f88cb3da9565772734449ec97c8c6182b4369d42928c3eaa23",
"lastState": {},
"name": "logdna-agent",
"ready": true,
"restartCount": 0,
"started": true,
"state": {
"running": {
"startedAt": "2022-11-24T01:52:30Z"
}
}
}
]