Bagikan melalui


(Tidak digunakan lagi) Menyebarkan kluster Kubernetes untuk kontainer Linux

Tip

Untuk versi terbaru mulai cepat ini yang menggunakan Azure Kubernetes Service, lihat Mulai Cepat: Menyebarkan kluster Azure Kubernetes Service (AKS).

Peringatan

Azure Container Service (ACS) tidak digunakan lagi. Tidak ada fitur atau fungsionalitas baru yang ditambahkan ke ACS. Semua API, pengalaman portal, perintah CLI, dan dokumentasi ditandai sebagai tidak digunakan lagi.

Pada tahun 2017, kami memperkenalkan Azure Kubernetes Service (AKS) untuk menyederhanakan manajemen, penyebaran, dan operasi Kubernetes. Jika Anda menggunakan orkestrator Kubernetes, silakan migrasikan ke AKS pada 31 Januari 2020. Untuk memulai, lihat bermigrasi ke Azure Kubernetes Service.

Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Container Service di Azure.com.

Dalam mulai cepat ini, kluster Kubernetes disebarkan menggunakan Azure CLI. Aplikasi multi-kontainer yang terdiri dari front end web dan instans Redis kemudian disebarkan dan dijalankan pada kluster. Setelah selesai, aplikasi dapat diakses melalui internet.

Contoh aplikasi yang digunakan dalam dokumen ini ditulis dalam Python. Konsep dan langkah-langkah yang dirinci di sini dapat digunakan untuk menyebarkan gambar kontainer apa pun ke dalam kluster Kubernetes. Kode, Dockerfile, dan file manifes Kubernetes yang telah dibuat sebelumnya yang terkait dengan proyek ini tersedia di GitHub.

Gambar penelusuran Azure Vote

Mulai cepat ini mengasumsikan pemahaman dasar tentang konsep Kubernetes, untuk informasi terperinci tentang Kubernetes lihat dokumentasi Kubernetes.

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. Cuplikan layar yang menunjukkan contoh Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Tombol untuk meluncurkan Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Cuplikan layar yang menunjukkan tombol Cloud Shell di portal Azure

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Masukkan untuk menjalankan kode atau perintah.

Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, mulai cepat ini mengharuskan Anda menjalankan Azure CLI versi 2.0.4 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, Pasang Azure CLI.

Buat grup sumber daya

Buat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah grup logis tempat sumber daya Azure disebarkan dan dikelola.

Contoh berikut membuat grup sumber daya bernama myResourceGroup di lokasi westeurope .

az group create --name myResourceGroup --location westeurope

Output:

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
  "location": "westeurope",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Membuat kluster Kube

Buat kluster Kubernetes di Azure Container Service dengan perintah az acs create . Contoh berikut membuat kluster bernama myK8sCluster dengan satu simpul master Linux dan tiga simpul agen Linux.

az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys

Dalam beberapa kasus, seperti dengan uji coba terbatas, langganan Azure memiliki akses terbatas ke sumber daya Azure. Jika penyebaran gagal karena inti yang tersedia terbatas, kurangi jumlah agen default dengan menambahkan --agent-count 1 ke perintah az acs create .

Setelah beberapa menit, perintah menyelesaikan dan mengembalikan informasi berformat json tentang kluster.

Menyambungkan ke kluster

Untuk mengelola kluster Kubernetes, gunakan kubectl, klien baris-perintah Kubernetes.

Jika Anda menggunakan Azure Cloud Shell, kubectl sudah diinstal. Jika ingin menginstalnya secara lokal, anda dapat menggunakan perintah az acs kubernetes install-cli .

Untuk mengonfigurasi kubectl untuk terhubung ke kluster Kubernetes, jalankan perintah az acs kubernetes get-credentials . Langkah ini mengunduh kredensial dan mengonfigurasi Kubernetes CLI untuk menggunakannya.

az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster

Untuk memverifikasi sambungan ke kluster Anda, gunakan perintah kubectl get untuk mengembalikan daftar node kluster.

kubectl get nodes

Output:

NAME                    STATUS                     AGE       VERSION
k8s-agent-14ad53a1-0    Ready                      10m       v1.6.6
k8s-agent-14ad53a1-1    Ready                      10m       v1.6.6
k8s-agent-14ad53a1-2    Ready                      10m       v1.6.6
k8s-master-14ad53a1-0   Ready,SchedulingDisabled   10m       v1.6.6

Jalankan aplikasi

File manifes Kubernetes mendefinisikan status yang diinginkan untuk kluster, termasuk gambar kontainer apa yang harus dijalankan. Untuk contoh ini, manifes digunakan untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi Azure Vote.

Buat file bernama azure-vote.yml dan salin ke dalamnya YAML berikut. Jika Anda bekerja di Azure Cloud Shell, file ini dapat dibuat menggunakan vi atau Nano seolah-olah bekerja pada sistem virtual atau fisik.

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      containers:
      - name: azure-vote-back
        image: redis
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      containers:
      - name: azure-vote-front
        image: microsoft/azure-vote-front:v1
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

Gunakan perintah kubectl create untuk menjalankan aplikasi.

kubectl create -f azure-vote.yml

Output:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Uji aplikasi

Saat aplikasi dijalankan, layanan Kubernetes dibuat yang mengekspos front end aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.

Untuk memantau kemajuan, gunakan perintah lkubectl get service dengan argumen --watch.

kubectl get service azure-vote-front --watch

Awalnya EXTERNAL-IP untuk layanan azure-vote-front muncul sebagai tertunda. Setelah alamat EXTERNAL-IP berubah dari tertunda ke alamat IP, gunakan CTRL-C untuk menghentikan proses kubectl watch.

azure-vote-front   10.0.34.242   <pending>     80:30676/TCP   7s
azure-vote-front   10.0.34.242   52.179.23.131   80:30676/TCP   2m

Sekarang Anda dapat menelusuri ke alamat IP eksternal untuk melihat Aplikasi Azure Vote.

Gambar penelusuran Azure Vote

Menghapus klaster

Ketika kluster tidak lagi diperlukan, Anda dapat menggunakan perintah az group delete untuk menghapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait.

az group delete --name myResourceGroup --yes --no-wait

Mendapatkan kode

Dalam mulai cepat ini, gambar kontainer yang telah dibuat sebelumnya telah digunakan untuk membuat penyebaran Kubernetes. Kode aplikasi, Dockerfile, dan file manifes Kube terkait tersedia di GitHub.

https://github.com/Azure-Samples/azure-voting-app-redis

Langkah berikutnya

Dalam mulai cepat ini, Anda menyebarkan kluster Kubernetes dan menyebarkan aplikasi multi-kontainer ke dalamnya.

Untuk mempelajari lebih lanjut tentang Azure Container Service, dan menelusuri kode lengkap untuk contoh penyebaran, lanjutkan ke tutorial kluster Kubernetes.