Azure'da OpenShift Container Platform 3.11'i dağıtmak için yaygın önkoşullar

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Bu makalede, Azure'da OpenShift Container Platform veya OKD dağıtımı için yaygın önkoşullar açıklanmaktadır.

OpenShift yüklemesi Ansible playbook'larını kullanır. Ansible, yükleme adımlarını tamamlamak üzere tüm küme konaklarına bağlanmak için Secure Shell (SSH) kullanır.

Ansible uzak konaklara SSH bağlantısı yaptığında parola giremez. Bu nedenle, özel anahtarın kendisiyle ilişkilendirilmiş bir parolası (parola) olamaz veya dağıtım başarısız olur.

Sanal makineler (VM' ler) Azure Resource Manager şablonları aracılığıyla dağıtılır, çünkü tüm VM'lere erişim için aynı ortak anahtar kullanılır. Buna karşılık gelen özel anahtar, tüm playbook'ları yürüten VM'de de olmalıdır. Bu eylemi güvenli bir şekilde gerçekleştirmek için özel anahtarı VM'ye geçirmek için bir Azure anahtar kasası kullanılır.

Kapsayıcılar için kalıcı depolama gerekiyorsa kalıcı birimler gereklidir. OpenShift, kalıcı birimler için Azure sanal sabit disklerini (VHD) destekler, ancak Önce Azure'ın bulut sağlayıcısı olarak yapılandırılması gerekir.

Bu modelde OpenShift:

  • Azure depolama hesabında veya yönetilen diskte VHD nesnesi oluşturur.
  • VHD'yi bir VM'ye bağlar ve birimi biçimlendirer.
  • Birimi pod'a bağlar.

Bu yapılandırmanın çalışması için OpenShift'in bu görevleri Azure'da gerçekleştirmek için izinlere ihtiyacı vardır. Bu amaçla bir hizmet sorumlusu kullanılır. Hizmet sorumlusu, Azure Active Directory'de kaynaklara izin verilen bir güvenlik hesabıdır.

Hizmet sorumlusunun kümeyi oluşturan depolama hesaplarına ve VM'lere erişimi olmalıdır. Tüm OpenShift kümesi kaynakları tek bir kaynak grubuna dağıtılırsa, hizmet sorumlusuna bu kaynak grubu için izinler verilebilir.

Bu kılavuzda önkoşullarla ilişkili yapıtların nasıl oluşturulacağı açıklanmaktadır.

  • OpenShift kümesinin SSH anahtarlarını yönetmek için bir anahtar kasası oluşturun.
  • Azure Bulut Sağlayıcısı tarafından kullanılmak üzere bir hizmet sorumlusu oluşturun.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Azure'da oturum açma

az login komutuyla Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri izleyin veya Cloud Shell kullanmak için Deneyin'e tıklayın.

az login

Kaynak grubu oluşturma

az group create komutuyla bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Anahtar kasasını barındırmak için ayrılmış bir kaynak grubu kullanmalısınız. Bu grup, OpenShift kümesi kaynaklarının dağıtıldığı kaynak grubundan ayrıdır.

Aşağıdaki örnek eastus konumunda keyvaultrg adlı bir kaynak grubu oluşturur:

az group create --name keyvaultrg --location eastus

Anahtar kasası oluşturma

az keyvault create komutuyla kümenin SSH anahtarlarını depolamak için bir anahtar kasası oluşturun. Anahtar kasası adı genel olarak benzersiz olmalı ve şablon dağıtımı için etkinleştirilmelidir, aksi takdirde dağıtım "KeyVaultParameterReferenceSecretretrieveFailed" hatasıyla başarısız olur.

Aşağıdaki örnek, keyvaultrg kaynak grubunda keyvault adlı bir anahtar kasası oluşturur:

az keyvault create --resource-group keyvaultrg --name keyvault \
       --enabled-for-template-deployment true \
       --location eastus

SSH anahtarı oluşturma

OpenShift kümesine erişimin güvenliğini sağlamak için bir SSH anahtarı gereklidir. komutunu kullanarak bir SSH anahtar çifti ssh-keygen oluşturun (Linux veya macOS'ta):

ssh-keygen -f ~/.ssh/openshift_rsa -t rsa -N ''

Not

SSH anahtar çiftinizin parolası /parolası olamaz.

Windows'da SSH anahtarları hakkında daha fazla bilgi için bkz. Windows'da SSH anahtarları oluşturma. Özel anahtarı OpenSSH biçiminde dışarı aktarmayı unutmayın.

SSH özel anahtarını Azure Key Vault'de depolama

OpenShift dağıtımı, OpenShift ana şablonuna erişimin güvenliğini sağlamak için oluşturduğunuz SSH anahtarını kullanır. Dağıtımın SSH anahtarını güvenli bir şekilde almasını sağlamak için aşağıdaki komutu kullanarak anahtarı Key Vault'de depolayın:

az keyvault secret set --vault-name keyvault --name keysecret --file ~/.ssh/openshift_rsa

Hizmet sorumlusu oluşturma

OpenShift, kullanıcı adı ve parola veya hizmet sorumlusu kullanarak Azure ile iletişim kurar. Azure hizmet sorumlusu; OpenShift gibi uygulamalar, hizmetler ve otomasyon araçlarıyla kullanabileceğiniz bir güvenlik kimliğidir. Hizmet sorumlusunun Azure'da gerçekleştirebileceği işlemlerin izinlerini denetler ve tanımlarsınız. Hizmet sorumlusunun izinlerini aboneliğin tamamı yerine belirli kaynak gruplarıyla kapsamak en iyisidir.

az ad sp create-for-rbac ile bir hizmet sorumlusu oluşturun ve OpenShift'in ihtiyaç duyduğu kimlik bilgilerini çıkış olarak kullanın.

Aşağıdaki örnek bir hizmet sorumlusu oluşturur ve openshiftrg adlı bir kaynak grubuna katkıda bulunan izinleri atar.

İlk olarak openshiftrg adlı kaynak grubunu oluşturun:

az group create -l eastus -n openshiftrg

Hizmet sorumlusu oluşturma:

az group show --name openshiftrg --query id

Komutun çıkışını kaydedin ve sonraki komutta $scope yerine kullanın

az ad sp create-for-rbac --name openshiftsp \
      --role Contributor --scopes $scope \

komutundan döndürülen appId özelliğini ve parolayı not alın:

{
  "appId": "11111111-abcd-1234-efgh-111111111111",
  "displayName": "openshiftsp",
  "name": "http://openshiftsp",
  "password": {Strong Password},
  "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

Uyarı

Bu parolayı yeniden almak mümkün olmadığından güvenli parolayı not almayı unutmayın.

Hizmet sorumluları hakkında daha fazla bilgi için bkz. Azure CLI ile Azure hizmet sorumlusu oluşturma.

Yalnızca Resource Manager şablonu için geçerli önkoşullar

Gizli dizilerin SSH özel anahtarı (sshPrivateKey), Azure AD gizli anahtarı (aadClientSecret), OpenShift yönetici parolası (openshiftPassword) ve Red Hat Abonelik Yöneticisi parolası veya etkinleştirme anahtarı (rhsmPasswordOrActivationKey) için oluşturulması gerekir. Ayrıca, özel TLS/SSL sertifikaları kullanılıyorsa altı gizli dizi daha oluşturulmalıdır: routingcafile, routingcertfile, routingkeyfile, mastercafile, mastercertfile ve masterkeyfile. Bu parametreler daha ayrıntılı olarak açıklanacaktır.

Şablon belirli gizli dizi adlarına başvurur, bu nedenle yukarıda listelenen kalın adları kullanmanız gerekir (büyük/küçük harfe duyarlı).

Özel Sertifikalar

Varsayılan olarak, şablon OpenShift web konsolu ve yönlendirme etki alanı için otomatik olarak imzalanan sertifikaları kullanarak bir OpenShift kümesi dağıtır. Özel TLS/SSL sertifikaları kullanmak istiyorsanız, 'routingCertType' öğesini 'custom' ve 'masterCertType' değerini 'custom' olarak ayarlayın. Sertifikalar için CA, Sertifika ve Anahtar dosyalarına .pem biçiminde ihtiyacınız olacaktır. Biri için özel sertifikalar kullanmak mümkündür, ancak diğeri için kullanılamaz.

Bu dosyaları Key Vault gizli dizilerde depolamanız gerekir. Özel anahtar için kullanılanla aynı Key Vault kullanın. Gizli dizi adları için 6 ek giriş gerektirmek yerine şablon, TLS/SSL sertifika dosyalarının her biri için belirli gizli dizi adlarını kullanacak şekilde sabit kodlanmıştır. Aşağıdaki tabloda yer alan bilgileri kullanarak sertifika verilerini depolayın.

Gizli Dizi Adı Sertifika dosyası
mastercafile ana CA dosyası
mastercertfile ana CERT dosyası
masterkeyfile ana anahtar dosyası
routingcafile yönlendirme CA dosyası
routingcertfile yönlendirme CERT dosyası
routingkeyfile yönlendirme Anahtarı dosyası

Azure CLI kullanarak gizli dizileri oluşturun. Aşağıda bir örnek verilmiştir.

az keyvault secret set --vault-name KeyVaultName -n mastercafile --file ~/certificates/masterca.pem

Sonraki adımlar

Bu makalede aşağıdaki konular ele alınmıştır:

  • OpenShift kümesinin SSH anahtarlarını yönetmek için bir anahtar kasası oluşturun.
  • Azure Bulut Çözümü Sağlayıcısı tarafından kullanılmak üzere bir hizmet sorumlusu oluşturun.

Ardından bir OpenShift kümesi dağıtın: