Halaman ini menjelaskan cara men-deploy workload yang menggunakan Stream Control Transmission Protocol (SCTP) di cluster Standard Google Kubernetes Engine (GKE).
SCTP didukung di teknologi Cilium. Karena GKE Dataplane V2 diimplementasikan menggunakan Cilium, Anda hanya dapat menggunakan SCTP pada cluster yang telah diaktifkan dengan GKE Dataplane V2. Dengan dukungan SCTP, Anda dapat mengaktifkan komunikasi SCTP langsung untuk traffic Pod-to-Pod dan Pod-to-Service. Untuk mempelajari lebih lanjut, lihat Dukungan SCTP di Cilium.
Halaman ini ditujukan bagi Operator dan Developer yang menyediakan dan mengonfigurasi resource cloud serta men-deploy aplikasi dan layanan. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang dirujuk dalam konten, lihat Peran dan tugas pengguna umum GKE Enterprise. Google Cloud
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Persyaratan dan batasan
Dukungan SCTP di cluster GKE Standard memiliki persyaratan dan batasan berikut:
- Cluster Anda harus menjalankan GKE versi 1.32.2-gke.1297000 atau yang lebih baru.
- Node cluster harus menggunakan image node Ubuntu. SCTP tidak didukung untuk image Container-Optimized OS.
- Untuk mengaktifkan dukungan SCTP, pastikan image container berbasis Ubuntu dan OS node GKE yang mendasarinya dimuat dengan modul kernel
sctp
. - Anda tidak dapat menggunakan SCTP di cluster yang diaktifkan dengan dukungan multi-jaringan untuk Pod.
- Waktu penyiapan untuk asosiasi SCTP dapat lebih lama daripada waktu penyiapan untuk koneksi TCP. Desain aplikasi Anda untuk menangani potensi penundaan saat asosiasi dibuat.
- Untuk mempelajari lebih lanjut apa yang didukung dan tidak didukung Cilium dengan SCTP, lihat dokumentasi Cilium.
Men-deploy workload dengan SCTP
Uji deployment Anda secara menyeluruh di lingkungan non-produksi sebelum men-deploy beban kerja ke produksi.
Mulai GKE versi 1.32.2-gke.1297000, SCTP diaktifkan secara default di cluster yang menggunakan GKE Dataplane V2 dan image node Ubuntu. Untuk men-deploy workload dengan SCTP, selesaikan langkah-langkah berikut:
Untuk membuat cluster dengan GKE Dataplane V2 dan image Ubuntu, jalankan perintah berikut:
gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --cluster-version=CLUSTER_VERSION \ --enable-dataplane-v2 \ --image-type=ubuntu_containerd
Ganti nilai berikut:
CLUSTER_NAME
: nama cluster Anda.CONTROL_PLANE_LOCATION
: lokasi Compute Engine bidang kontrol cluster Anda. Berikan region untuk cluster regional, atau zona untuk cluster zona.CLUSTER_VERSION
: versi GKE, yang harus berupa 1.32.2-gke.1297000 atau yang lebih baru.
Untuk membuat container aplikasi, pastikan image container Anda menyertakan aplikasi yang dikonfigurasi untuk menggunakan SCTP. Anda dapat menggunakan aplikasi apa pun yang mendukung SCTP, seperti aplikasi kustom.
Berikut adalah contoh
Dockerfile
untuk memasukkan aplikasi ke dalam container, dengan asumsi Anda menggunakan Docker:Bangun dan kirim image ke registry container seperti Artifact Registry. Untuk mengetahui informasi selengkapnya tentang cara kerja file ini, lihat referensi Dockerfile dalam dokumentasi Docker.
Untuk membuat Deployment dan Layanan, simpan manifes berikut sebagai
sctp-deployment.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: sctp-app spec: replicas: 1 selector: matchLabels: app: sctp-app template: metadata: labels: app: sctp-app spec: containers: - name: sctp-container image: CONTAINER_IMAGE ports: - containerPort: PORT protocol: SCTP --- apiVersion: v1 kind: Service metadata: name: sctp-service spec: selector: app: sctp-app ports: - protocol: SCTP port: PORT targetPort: PORT type: ClusterIP
Ganti kode berikut:
CONTAINER_IMAGE
: image container yang Anda buat di langkah sebelumnya.PORT
: nomor port SCTP dan port target aplikasi. Nilai untukport
dantargetPort
harus sama.
Untuk menerapkan Deployment dan Service, jalankan perintah berikut:
kubectl apply -f sctp-deployment.yaml
Untuk memverifikasi konektivitas SCTP untuk Layanan, buat Pod dalam cluster yang sama dan jalankan perintah berikut:
kubectl run sctp-client \ --image=ubuntu:latest \ --namespace=default \ -it --rm \ --command -- bash -c 'apt-get update && apt-get install -y socat && (echo "Hello, SCTP!"; sleep 1) | socat - SCTP:sctp-service:PORT'
Outputnya mirip dengan hal berikut ini:
Preparing to unpack .../socat_1.8.0.0-4build3_amd64.deb ... Setting up socat (1.8.0.0-4build3) ... Hello, SCTP!
Pemecahan masalah
Jika Anda mengalami masalah dengan konektivitas SCTP, ikuti panduan ini untuk membantu menentukan sumber masalah:
Periksa log Pod. Untuk memeriksa apakah ada error dalam log aplikasi Anda, jalankan perintah berikut:
kubectl logs POD_NAME
Log ini dapat membantu Anda mengidentifikasi penyebab Pod mengalami error.
Periksa status objek Layanan SCTP:
kubectl describe service SCTP_SERVICE_NAME
Periksa kebijakan jaringan Anda. Kebijakan jaringan dapat membatasi traffic SCTP. Pastikan kebijakan jaringan Anda mengizinkan traffic SCTP yang diperlukan untuk aplikasi Anda.
Periksa status GKE Dataplane V2. Untuk memverifikasi bahwa GKE Dataplane V2 diaktifkan di cluster Anda, jalankan perintah berikut:
kubectl -n kube-system get pods -l k8s-app=cilium -o wide
Pastikan output menyertakan Pod dengan awalan
anetd-
. anetd adalah pengontrol jaringan untuk GKE Dataplane V2.Untuk meningkatkan throughput, tingkatkan parameter
sysctl
net.core.wmem_default
dannet.core.rmem_default
ke nilai yang lebih besar, misalnya, 4194304 (4 MB). Untuk mengetahui informasi selengkapnya, lihat Opsi konfigurasi Sysctl.Anda mungkin menghadapi masalah jika menggunakan Network Address Translation (NAT) dengan SCTP di GKE. Untuk mengetahui informasi selengkapnya tentang apa yang didukung Cilium dengan SCTP, lihat dokumentasi Cilium.
Paket SCTP tunduk pada Unit Transmisi Maksimum (MTU) jaringan. Pastikan MTU jaringan Anda cukup untuk traffic SCTP Anda.
Performa SCTP dapat dipengaruhi oleh faktor-faktor seperti latensi jaringan, kehilangan paket, dan penyesuaian kernel. Pantau performa SCTP aplikasi Anda dan sesuaikan setelan sesuai kebutuhan.
Langkah berikutnya
- Pelajari dukungan SCTP di dokumentasi Cilium.
- Pelajari cara mengaktifkan GKE Dataplane V2 di cluster Anda.