Plugin jaringan kontainer yang digunakan dalam kluster hibrid mencakup dua komponen: plugin jaringan di pusat data dan plugin jaringan pada node komputasi cloud. Topik ini menjelaskan cara mendeploy dan mengonfigurasi Terway dalam kluster hibrid.
Prasyarat
Parameter Terway harus dikonfigurasi saat membuat kluster terdaftar dalam skenario berikut: Skenario 2: Pusat data menggunakan jaringan BGP untuk jaringan kontainer dan Skenario 3: Pusat data menggunakan jaringan host untuk jaringan kontainer.
IPVLAN disesuaikan dengan kebutuhan bisnis Anda.
Switch vPod telah ditentukan.
Blok CIDR Layanan telah ditentukan.
Untuk informasi lebih lanjut, lihat Buat Kluster Terdaftar ACK One.
Sebuah plugin jaringan dikonfigurasi untuk pusat data dan satu lagi untuk node komputasi cloud.
Skenario 1: Pusat data menggunakan jaringan overlay untuk jaringan kontainer
Dalam skenario ini, pusat data menggunakan jaringan overlay untuk jaringan kontainer. Node komputasi cloud juga dapat menggunakan mode jaringan ini. Pastikan node komputasi cloud dapat menarik image kontainer DaemonSet dari plugin jaringan kontainer.
Berikut adalah mode jaringan overlay yang umum digunakan:
Flannel VXLAN
Calico IPIP
Cilium VXLAN
Skenario 2: Pusat data menggunakan jaringan BGP untuk jaringan kontainer
Dalam skenario ini, pusat data menggunakan Border Gateway Protocol (BGP) untuk jaringan kontainer. Plugin jaringan Terway harus digunakan pada node komputasi cloud. Untuk informasi lebih lanjut tentang cara menghubungkan jaringan lokal dan cloud, lihat Konfigurasi dan Kelola BGP.
Pastikan kondisi berikut terpenuhi:
DaemonSet dari plugin jaringan kontainer lokal, seperti route reflector BGP di Calico, tidak dijadwalkan ke node komputasi cloud.
DaemonSet dari plugin jaringan Terway tidak dijadwalkan ke node komputasi lokal.
Setiap node komputasi yang ditambahkan dari kumpulan node dalam kluster terdaftar memiliki label alibabacloud.com/external=true. Label ini membedakan node komputasi cloud dari node komputasi lokal.
Sebagai contoh, konfigurasikan node affinity untuk memastikan bahwa DaemonSet dari plugin jaringan Calico lokal tidak dijadwalkan ke node dengan label alibabacloud.com/external=true. Metode serupa dapat digunakan untuk memastikan beban kerja lokal lainnya tidak dijadwalkan ke node komputasi cloud. Jalankan perintah berikut untuk memperbarui plugin jaringan Calico:
cat <<EOF > calico-ds.patch
spec:
template:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: alibabacloud.com/external
operator: NotIn
values:
- "true"
EOF
kubectl -n kube-system patch ds calico-node -p "$(cat calico-ds.patch)"Secara default, DaemonSet dari Terway dijadwalkan ke node dengan label alibabacloud.com/external=true.
Skenario 3: Pusat data menggunakan jaringan host untuk jaringan kontainer
Dalam skenario ini, pusat data menggunakan jaringan host untuk jaringan kontainer. Pastikan DaemonSet dari plugin jaringan Terway tidak dijadwalkan ke node komputasi lokal. Secara default, DaemonSet dari plugin jaringan Terway hanya dijadwalkan ke node dengan label alibabacloud.com/external=true.
Instal dan konfigurasikan plugin jaringan Terway
Dalam Skenario 2 dan Skenario 3, instal dan konfigurasikan plugin jaringan Terway pada node komputasi cloud dari kluster hibrid.
Langkah 1: Berikan izin kepada plugin jaringan Terway
Gunakan konsol RAM
Buat pengguna RAM dan lampirkan kebijakan berikut ke pengguna tersebut. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk Memberi Otorisasi Akses ke Kluster dan Sumber Daya Cloud.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel kiri, pilih .
Di halaman Secrets, klik Create from YAML. Isi contoh kode berikut untuk membuat Secret bernama alibaba-addon-secret.
CatatanKomponen mengakses layanan cloud menggunakan AccessKeyID dan AccessKeySecret yang tersimpan. Lewati langkah ini jika
alibaba-addon-secretsudah ada.apiVersion: v1 kind: Secret metadata: name: alibaba-addon-secret namespace: kube-system type: Opaque stringData: access-key-id: <AccessKeyID dari pengguna RAM> access-key-secret: <AccessKeySecret dari pengguna RAM>
Gunakan onectl
Instal onectl di mesin lokal Anda. Untuk informasi lebih lanjut, lihat Gunakan onectl untuk Mengelola Kluster Terdaftar.
Jalankan perintah berikut untuk memberikan izin Manajemen Akses Sumber Daya (RAM) kepada Terway:
onectl ram-user grant --addon terway-eniipOutput yang Diharapkan:
Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.
Langkah 2: Instal plugin Terway
Gunakan konsol ACK
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.
Di halaman Add-ons, klik tab Networking. Pilih komponen terway-eniip lalu klik Install.
Gunakan onectl
Jalankan perintah berikut untuk menginstal plugin Terway:
onectl addon install terway-eniipOutput yang Diharapkan:
Addon terway-eniip, versi **** terinstal.Langkah 3: Konfigurasikan plugin Terway
Jalankan perintah berikut untuk memodifikasi ConfigMap eni-config, dan konfigurasikan parameter eni_conf.access_key dan eni_conf.access_secret:
kubectl -n kube-system edit cm eni-configContoh kode berikut menunjukkan ConfigMap eni-config:
kind: ConfigMap
apiVersion: v1
metadata:
name: eni-config
namespace: kube-system
data:
eni_conf: |
{
"version": "1",
"max_pool_size": 5,
"min_pool_size": 0,
"vswitches": {"AZoneID":["VswitchId"]},
"eni_tags": {"ack.aliyun.com":"{{.ClusterId}}"},
"service_cidr": "{{.ServiceCIDR}}",
"security_group": "{{.SecurityGroupId}}",
"access_key": "",
"access_secret": "",
"vswitch_selection_policy": "ordered"
}
10-terway.conf: |
{
"cniVersion": "0.3.0",
"name": "terway",
"type": "terway"
}Anda dapat menggunakan file kubeconfig untuk terhubung ke kluster terdaftar dan menanyakan DaemonSet yang dibuat untuk plugin jaringan Terway. Sebelum node komputasi cloud ditambahkan ke kluster hibrid, DaemonSet tidak dijadwalkan ke node komputasi lokal.
Jalankan perintah berikut untuk menanyakan jaringan Terway:
kubectl -nkube-system get ds |grep terwayOutput yang Diharapkan:
terway-eniip 0 0 0 0 0 alibabacloud.com/external=true 16s