(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 Kube. 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 ujung depan 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 Kube 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 Kube.

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

Menggunakan 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 pun di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di sudut kanan atas blok kode. Memilih Coba tidak secara otomatis menyalin kode ke Cloud Shell. Contoh Coba untuk Azure Cloud Shell
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Luncurkan Cloud Shell di jendela baru
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Tombol Cloud Shell di portal Microsoft Azure

Untuk menjalankan kode dalam artikel ini di Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode untuk menyalin kode.

  3. Tempelkan kode ke sesi Cloud Shell dengan memilih CtrlShiftV di Windows dan Linux atau dengan memilih CmdShiftV di macOS.

  4. Pilih Enter untuk menjalankan kode.

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, lihat Memasang CLI Azure.

Membuat 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.

Sambungkan ke kluster

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

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

Untuk mengonfigurasi kubectl agar tersambung 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, gunakan perintah dapatkan kubectl untuk menghasilkan daftar simpul 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

Menjalankan 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

Menguji 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 layanan dapatkan kubectl dengan argumen --watch.

kubectl get service azure-vote-front --watch

Awalnya EXTERNAL-IP untuk layanan azure-vote-front muncul sebagai tertunda. Saat alamat EXTERNAL-IP berubah dari tertunda menjadi alamat IP, gunakan CTRL-C untuk menghentikan proses memantau kubectl.

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

Hapus Kluster

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 terkait, Dockerfile, dan file manifes Kubetersedia 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.