讓地端Kubernetes存取私有Registry-以Azure Container Registry為例

讓地端Kubernetes存取私有Registry-以Azure Container Registry為例

上一篇,是直接透過各種 containerd CLI 來存取 Private Registry 裡的 Images。其實這只算一個 PoC,因為要先學習如何存取私有 Registry。有了之前的經驗,那麼接下來的大目標是讓 Kubernetes 的 nodes 也能存取私有 Registry。之前提到,Kubernetes 本身是使用 crictl CLI 來與 containerd 溝通。

crictl pull --creds "UserName:Password" "ImageDetail"

但我們用 Kubernetes 時不可能這樣下指令,必須透過一些其他方法。Kubernetes 本身可以吃 docker 的 config.json 組態來使用。對「docker 的 config.json 組態」有沒有很熟悉的感覺。對,在上一篇我們透過 nerdctl login 協助,它預設會把相關組態儲存下來到 /root/.docker/config.json,這不就是我們需要的嗎。

containerd CLI - ctr、nerdctl、crictl 與 Azure Container Registry 存取設定

containerd CLI - ctr、nerdctl、crictl 與 Azure Container Registry 存取設定

在安裝完containerD之後,有時需要直接與containerd溝通,這時就需要透過CLI,文件共介紹 ctr、nerdctl、crictl 三套 CLI,CLI 與 containerd 的關係,就像 dockerd 與 docker CLI 差不多意思。除了溝通之外,由於我們 Registry 是採用Azure Container Registry,因此另一個重點是要知道如何設定以存取預設 docker.io 以外的 Registry。

教你5分鐘在Ubuntu 22.04架設Kubernetes Cluster

教你5分鐘在Ubuntu 22.04架設Kubernetes Cluster

話說[前篇]處理好Notebook、Hyper-V網路與VM網路之間的問題之後,在MicroK8s的幫助下,從Kubernetes到Kubernetes Cluster幾乎都是一行指令就能完成。

安裝MicroK8s:

sudo snap install microk8s --classic --channel=1.25

建立與加入Cluster:

microk8s add-node

方便代表看不到細節。因為想要瞭解細節,因此又花了一些時間學習如何從無到有設定與安裝Kubernetes與建置Kubernetes Cluster。

.NET Conf 總召真心話:社群與活動企劃幕後秘辛 - 推薦序

.NET Conf 總召真心話:社群與活動企劃幕後秘辛 - 推薦序

大家好,我是此書的推坑人(見作者序)Bruce。

我在網路上的個人簡介裡有那麼一小段文字:「先後受邀加入 Study4.tw與twMVC社群講師」,STUDY4是我人生中第一個受邀加入的社群,可以說沒有社群就沒今天的我。在那個還是MSN的時代,資訊相對於台北落後的台中,有個眼光獨特且行動力超強的人Sky成立了STUDY4社群,一路看著STUDY4從一個沒沒無名的小社群,透過一場又一場的技術分享會來推廣各種技術。然後從台中殺上台北,再一次從無到有,又一次次創造及完成不可能的任務。

手動調整Windows的TLS設定

手動調整Windows的TLS設定

Windows-web-servers-should-be-configured-to-use-secure-communication-protocols

在Azure VM上有個高風險警告,原本以為用之前「停用不安全的TLS版本」的IISCrypto工具處理即可,以下借用黑大的PowerShell取得IISCrypto套用的結果。

PS D:\> Get-ChildItem -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers'


    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers


Name                           Property
----                           --------
AES 128/128                    Enabled : 4294967295
AES 256/256                    Enabled : 4294967295
DES 56/56                      Enabled : 0
NULL                           Enabled : 0
RC2 128/128                    Enabled : 0
RC2 40/128                     Enabled : 0
RC2 56/128                     Enabled : 0
RC4 128/128                    Enabled : 0
RC4 40/128                     Enabled : 0
RC4 56/128                     Enabled : 0
RC4 64/128                     Enabled : 0
Triple DES 168                 Enabled : 4294967295


PS D:\> Get-ChildItem -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\' -Recurse |
>> ForEach-Object {
>>     $p = Get-ItemProperty -Path $_.PSPath
>>     if ('Enabled' -in $p.PSObject.Properties.Name) {
>>         $_.PSPath.Split(':')[2]
>>         "Enabled = $($p.Enabled)"
>>     }
>> }
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Client
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Client
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server
Enabled = 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
Enabled = 4294967295
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server
Enabled = 4294967295
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client
Enabled = 4294967295
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server
Enabled = 4294967295
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
Enabled = 4294967295
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
Enabled = 4294967295

但沒想到前後調了幾天都沒讓它Pass,最後全部自己手動調整機碼才完成。(時間有點長是因為,調整完要等Azure去重新掃描,好像12小時才一次,因此一天調一次。)

TLS調整這部分的資訊蠻零散,修改前記得相關主題裡的注意事項要看一下,不然修改後出事,我可不負責哦。