前回のエントリでADEを適用すると、/dev/sdc
にBEK volumeがデバイスがマウントされると書いたのですが、
それがうまく処理できないケースとして、kubernetesのAzure Cloud Providerとの組み合わせがあります。これについてはすでにissueとして報告しており、解決策が議論されています。
問題は、Azure DiskをkubernetesのPersistent Volumeとして利用する場合、ADEが有効化されている仮想マシンにマウントされると、/dev/sdc
にPVとしてアタッチされたAzure Diskのデバイスが存在していると認識してしまうというものです。Azure Cloud Providerの問題なので、AKSでも発生しますし、素のkubernetesをAzure Cloud Providerを有効化しても発生します。
Azure Disk Encryption自体は透過的に働くので、kubernetesとは独立しているような気がするのですが、デバイスのマウント先の検出するロジックで問題が発生しているようです。
Azure Cloud ProviderはPVとしてマウントされたAzue Diskのデバイスについて必要な処理を行うのですが、その際、すでにマウント済みのデバイス*1は除外するようにコードが記述されています。が、この処理がADEのBEK volumeについての考慮が漏れているらしいというのが事の真相のようです。
kubernetes/azure_common_linux.go at v1.9.9 · kubernetes/kubernetes · GitHub
workaroundはなさそう?*2なので、しばらくはissueの行方を見守る必要がありそうです。