Held kullanarak Kubernetes dağıtımıyla tümleştirin

Held, Kubernetes 'te çalışan uygulamaları tanımlamak, yüklemek ve yükseltmek için bir yol sağlar. Helk grafiği bir Kubernetes uygulamasının örneğini oluşturmak için gereken bilgileri içerir. Yapılandırma,, values. YAML adlı bir dosyada grafiğin dışında saklanır.

Yayın işlemi sırasında, HELI uygulamayı çalıştırmak için uygun yapılandırmayla grafiği birleştirir. Örneğin, values. YAML içinde tanımlanan değişkenlere, çalışan kapsayıcılar içinde ortam değişkenleri olarak başvurulabilir. HELI Ayrıca veri birimleri olarak veya ortam değişkenleri olarak kullanıma sunulacak Kubernetes gizli dizileri oluşturulmasını destekler.

Held çalıştırırken komut satırına ek YAML tabanlı yapılandırma dosyaları sağlayarak values. YAML içinde depolanan değerleri geçersiz kılabilirsiniz. Azure Uygulama yapılandırması, yapılandırma değerlerinin YAML dosyalarına verilmesini destekler. Bu dışarı aktarma özelliğinin dağıtımınız ile tümleştirilmesi, Kubernetes uygulamalarınızın uygulama yapılandırmasında depolanan yapılandırma değerlerinden yararlanmasını sağlar.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Held kullanarak Kubernetes 'e uygulama dağıttığınızda uygulama yapılandırmasındaki değerleri kullanın.
  • Uygulama yapılandırmasındaki bir Key Vault başvurusunu temel alarak bir Kubernetes gizli dizisi oluşturun.

Bu öğretici, Held ile Kubernetes yönetimi hakkında temel anladığını varsayar. Azure Kubernetes hizmetindeHeld ile uygulama yükleme hakkında daha fazla bilgi edinin.

Önkoşullar

Uygulama yapılandırma deposu oluşturma

  1. Yeni bir uygulama yapılandırma deposu oluşturmak için Azure Portaloturum açın. Giriş sayfasının sol üst köşesinde kaynak oluştur' u seçin. Market 'te Ara kutusuna uygulama yapılandırması ' nı girin ve ENTER' u seçin.

    Uygulama yapılandırması ara

  2. Arama sonuçlarından uygulama yapılandırması ' nı seçin ve ardından Oluştur' u seçin.

    Oluştur’u seçin

  3. Uygulama yapılandırması oluştur bölmesinde, aşağıdaki ayarları girin:

    Ayar Önerilen değer Açıklama
    Abonelik Aboneliğiniz Uygulama yapılandırmasını test etmek için kullanmak istediğiniz Azure aboneliğini seçin. Hesabınızda yalnızca bir abonelik varsa, bu otomatik olarak seçilir ve abonelik listesi gösterilmez.
    Kaynak grubu AppConfigTestResources Uygulama yapılandırma deposu kaynağınız için bir kaynak grubu seçin veya oluşturun. Bu grup, kaynak grubunu silerek aynı anda silmek isteyebileceğiniz birden çok kaynağı düzenlemek için yararlıdır. Daha fazla bilgi için Azure kaynaklarınızı yönetmek için kaynak gruplarını kullanma konusunu inceleyin.
    Kaynak adı Genel olarak benzersiz bir ad Uygulama yapılandırma deposu kaynağı için kullanılacak benzersiz bir kaynak adı girin. Ad, 5 ila 50 karakter arasında bir dize olmalı ve yalnızca rakam, harf ve - karakter içermelidir. Ad, karakteriyle başlayamaz veya bitemez - .
    Konum Central US Uygulama yapılandırma deponuzın barındırıldığı coğrafi konumu belirtmek için konum ' i kullanın. En iyi performansı elde etmek için, kaynağı uygulamanızın diğer bileşenleriyle aynı bölgede oluşturun.
    Fiyatlandırma katmanı Ücretsiz İstediğiniz fiyatlandırma katmanını seçin. Daha fazla bilgi için bkz. uygulama yapılandırma fiyatlandırma sayfası.
  4. Ayarlarınızı doğrulamak için gözden geçir + oluştur ' u seçin.

  5. Oluştur’u seçin. Dağıtım birkaç dakika sürebilir.

  6. Dağıtım bittikten sonra uygulama yapılandırma kaynağına gidin. Ayarlar > Erişim anahtarları öğesini seçin. Birincil salt okunurdur anahtar bağlantı dizesini bir yere unutmayın. Uygulamanızı oluşturduğunuz uygulama yapılandırma deposuyla iletişim kuracak şekilde yapılandırmak için bu bağlantı dizesini daha sonra kullanacaksınız.

  1. Aşağıdaki anahtar-değer çiftlerini eklemek için yapılandırma Gezgini Oluştur ' u seçin:

| Anahtar | Değer |
|---|---|
| Settings. Color | Beyaz |
| Settings. Message | Azure Uygulama yapılandırmasından veriler |
  1. Etiket ve içerik türü şimdilik boş bırakın.

Uygulama yapılandırmasına Key Vault başvurusu ekleme

  1. Azure Portal oturum açın ve ad parolasıyla ve mypassword değeriyle Key Vault bir parola ekleyin.

  2. Önceki bölümde oluşturduğunuz uygulama yapılandırma deposu örneğini seçin.

  3. Yapılandırma Gezgini' ni seçin.

  4. + > Anahtar Kasası başvurusu oluştur ' u seçin ve ardından aşağıdaki değerleri belirtin:

    • Anahtar: gizlilikler. Password öğesini seçin.
    • Etiket: Bu değeri boş bırakın.
    • Abonelik, kaynak grubu ve Anahtar Kasası: önceki adımda oluşturduğunuz anahtar kasasında bunlara karşılık gelen değerleri girin.
    • Gizli dizi: önceki bölümde oluşturduğunuz gizli parolayı seçin.

Held grafiği oluşturma

İlk olarak, aşağıdaki komutla bir örnek HELI grafiği oluşturun:

helm create mychart

Helm, aşağıda gösterilen yapıyla MyChart adlı yeni bir dizin oluşturur.

İpucu

Daha fazla bilgi edinmek için bu grafik kılavuzunu izleyin.

mychart
|-- Chart.yaml
|-- charts
|-- templates
|   |-- NOTES.txt
|   |-- _helpers.tpl
|   |-- deployment.yaml
|   |-- ingress.yaml
|   `-- service.yaml
`-- values.yaml

Sonra, Deployment. YAML dosyasının spec: Template: spec: containers bölümünü güncelleştirin. Aşağıdaki kod parçacığı kapsayıcıya iki ortam değişkeni ekler. Değerlerini dağıtım zamanında dinamik olarak ayarlayacaksınız.

env:
- name: Color
    value: {{ .Values.settings.color }}
- name: Message
    value: {{ .Values.settings.message }}

Güncelleştirme sonrasında Deployment. YAML dosyasının tamamı aşağıdaki gibi görünmelidir.

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: {{ include "mychart.fullname" . }}
  labels:
    app.kubernetes.io/name: {{ include "mychart.name" . }}
    helm.sh/chart: {{ include "mychart.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app.kubernetes.io/name: {{ include "mychart.name" . }}
      app.kubernetes.io/instance: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app.kubernetes.io/name: {{ include "mychart.name" . }}
        app.kubernetes.io/instance: {{ .Release.Name }}
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
            - name: Color
              value: {{ .Values.settings.color }}
            - name: Message
              value: {{ .Values.settings.message }}
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /
              port: http
          readinessProbe:
            httpGet:
              path: /
              port: http
          resources:
{{ toYaml .Values.resources | indent 12 }}
    {{- with .Values.nodeSelector }}
      nodeSelector:
{{ toYaml . | indent 8 }}
    {{- end }}
    {{- with .Values.affinity }}
      affinity:
{{ toYaml . | indent 8 }}
    {{- end }}
    {{- with .Values.tolerations }}
      tolerations:
{{ toYaml . | indent 8 }}
    {{- end }}

Hassas verileri Kubernetes gizli dizileri olarak depolamak için, Şablonlar klasörü altına bir gizli dizi. YAML dosyası ekleyin.

İpucu

Kubernetes gizliliklerinikullanma hakkında daha fazla bilgi edinin.

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  password: {{ .Values.secrets.password | b64enc }}

Son olarak, aşağıdaki içerikle values. YAML dosyasını güncelleştirin ve dağıtım. YAML ve gizlilikler. YAML dosyalarında başvurulan yapılandırma ayarları ve gizli dizileri için varsayılan değerleri sağlayın. Uygulama yapılandırmasından alınan yapılandırma ile gerçek değerlerinin üzerine yazılacak.

# settings will be overwritten by App Configuration
settings:
  color: red
  message: myMessage

Held yüklemede uygulama yapılandırmasından yapılandırmayı geçir

İlk olarak, yapılandırmayı uygulama yapılandırmasından bir MyConfig. YAML dosyasına indirin. Yalnızca ayarlarla başlayan anahtarları indirmek için bir anahtar filtresi kullanın . Anahtar filtresi, Key Vault başvuruların anahtarlarını hariç tutmak için yeterli değilse, --Skip-keykasa bağımsız değişkenini kullanarak bunları dışlayabilirsiniz.

İpucu

Dışa aktarma komutuhakkında daha fazla bilgi edinin.

az appconfig kv export -n myAppConfiguration -d file --path myConfig.yaml --key "settings.*"  --separator "." --format yaml

Ardından, gizli dizileri Mygizlilikler. YAML adlı bir dosyaya indirin. Komut satırı bağımsız değişkeni --Resolve-keykasası , Key Vault içindeki gerçek değerleri alarak Key Vault başvurularını çözer. Bu komutu, karşılık gelen Key Vault erişim izinleri olan kimlik bilgileriyle çalıştırmanız gerekir.

Uyarı

Bu dosya hassas bilgiler içerdiğinden dosyayı dikkatli tutun ve artık gerekli olmadığında temizleyin.

az appconfig kv export -n myAppConfiguration -d file --path mySecrets.yaml --key "secrets.*" --separator "." --resolve-keyvault --format yaml

Oluşturduğunuz iki yapılandırma dosyasını geçirmek için helk Upgrade -f bağımsız değişkenini kullanın. Bunlar, values. YAML içinde tanımlanan yapılandırma değerlerini uygulama yapılandırmasından içe aktarılmış değerlerle geçersiz kılar.

helm upgrade --install -f myConfig.yaml -f mySecrets.yaml "example" ./mychart

Ayrıca, sabit anahtar değerlerini iletmek için Held yükseltmesi için --set bağımsız değişkenini de kullanabilirsiniz. --Set bağımsız değişkeninin kullanılması, diske gizli verilerin kalıcı olmasını önlemek için iyi bir yoldur.

$secrets = az appconfig kv list -n myAppConfiguration --key "secrets.*" --resolve-keyvault --query "[*].{name:key, value:value}" | ConvertFrom-Json

foreach ($secret in $secrets) {
  $keyvalues += $secret.name + "=" + $secret.value + ","
}

if ($keyvalues){
  $keyvalues = $keyvalues.TrimEnd(',')
  helm upgrade --install --set $keyvalues "example" ./mychart
}
else{
  helm upgrade --install "example" ./mychart
}

Kubernetes panosunaerişerek yapılandırmaların ve parolaların başarıyla ayarlandığını doğrulayın. Uygulama yapılandırmasından renk ve mesaj değerlerinin kapsayıcının ortam değişkenlerine doldurulduğunu görürsünüz.

Hızlı başlangıç uygulaması başlatma yerel

Bir gizli dizi, parola, uygulama yapılandırmasında Key Vault başvuru olarak depolar da Kubernetes sırlarına eklenmiştir.

Veri bölümündeki parolayı vurgulayan ekran görüntüsü.

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız, ücretlendirmemek için burada oluşturduğunuz kaynak grubunu silin.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makaleye ait kaynakları tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden ayrı ayrı silin.

  1. Azure Portaloturum açın ve kaynak grupları' nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil' i seçin.

Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.

Sonraki adımlar

Bu öğreticide, Held ile bir Kubernetes dağıtımında kullanılacak Azure uygulama yapılandırma verilerini aktarmış olursunuz. Uygulama yapılandırmasını kullanma hakkında daha fazla bilgi için Azure CLı örneklerine devam edin.