Skip to content

Commit 8a3cc40

Browse files
authored
Merge pull request #20106 from ariscahyadi/id-local-dual-stack
ID Localization for IPv4/IPv6 Dual-Stack
2 parents b8ecdaf + c46d47d commit 8a3cc40

File tree

5 files changed

+198
-0
lines changed

5 files changed

+198
-0
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
---
2+
title: Dual-stack IPv4/IPv6
3+
feature:
4+
title: Dual-stack IPv4/IPv6
5+
description: >
6+
Pengalokasian alamat IPv4 dan IPv6 untuk Pod dan Service
7+
8+
content_template: templates/concept
9+
weight: 70
10+
---
11+
12+
{{% capture overview %}}
13+
14+
{{< feature-state for_k8s_version="v1.16" state="alpha" >}}
15+
16+
_Dual-stack_ IPv4/IPv6 memungkinkan pengalokasian alamat IPv4 dan IPv6 untuk
17+
{{< glossary_tooltip text="Pod" term_id="pod" >}} dan {{< glossary_tooltip text="Service" term_id="service" >}}.
18+
19+
Jika kamu mengaktifkan jaringan _dual-stack_ IPv4/IPv6 untuk klaster Kubernetes
20+
kamu, klaster akan mendukung pengalokasian kedua alamat IPv4 dan IPv6 secara
21+
bersamaan.
22+
23+
{{% /capture %}}
24+
25+
{{% capture body %}}
26+
27+
## Fitur-fitur yang didukung
28+
29+
Mengaktifkan _dual-stack_ IPv4 / IPv6 pada klaster Kubernetes kamu untuk
30+
menyediakan fitur-fitur berikut ini:
31+
32+
* Jaringan Pod _dual-stack_ (pengalokasian sebuah alamat IPv4 dan IPv6 untuk setiap Pod)
33+
* Service yang mendukung IPv4 dan IPv6 (setiap Service hanya untuk satu keluarga alamat)
34+
* Perutean Pod ke luar klaster (misalnya Internet) melalui antarmuka IPv4 dan IPv6
35+
36+
## Prasyarat
37+
38+
Prasyarat berikut diperlukan untuk menggunakan _dual-stack_ IPv4/IPv6 pada
39+
klaster Kubernetes :
40+
41+
* Kubernetes versi 1.16 atau yang lebih baru
42+
* Dukungan dari penyedia layanan untuk jaringan _dual-stack_ (Penyedia layanan _cloud_ atau yang lainnya harus dapat menyediakan antarmuka jaringan IPv4/IPv6 yang dapat dirutekan) untuk Node Kubernetes
43+
* Sebuah _plugin_ jaringan yang mendukung _dual-stack_ (seperti Kubenet atau Calico)
44+
* Kube-proxy yang berjalan dalam mode IPVS
45+
46+
## Mengaktifkan _dual-stack_ IPv4/IPv6
47+
48+
Untuk mengaktifkan _dual-stack_ IPv4/IPv6, aktifkan [gerbang fitur (_feature gate_)](/docs/reference/command-line-tools-reference/feature-gates/) `IPv6DualStack`
49+
untuk komponen-komponen yang relevan dari klaster kamu, dan tetapkan jaringan
50+
_dual-stack_ pada klaster:
51+
52+
* kube-controller-manager:
53+
* `--feature-gates="IPv6DualStack=true"`
54+
* `--cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>` misalnya `--cluster-cidr=10.244.0.0/16,fc00::/24`
55+
* `--service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR>`
56+
* `--node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6` nilai bawaannya adalah /24
57+
untuk IPv4 dan /64 untuk IPv6
58+
* kubelet:
59+
* `--feature-gates="IPv6DualStack=true"`
60+
* kube-proxy:
61+
* `--proxy-mode=ipvs`
62+
* `--cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>`
63+
* `--feature-gates="IPv6DualStack=true"`
64+
65+
{{< caution >}}
66+
Jika kamu menentukan blok alamat IPv6 yang lebih besar dari /24 melalui
67+
`--cluster-cidr` pada baris perintah, maka penetapan tersebut akan gagal.
68+
{{< /caution >}}
69+
70+
## Service
71+
72+
Jika klaster kamu mengaktifkan jaringan _dual-stack_ IPv4/IPv6, maka kamu dapat
73+
membuat {{<glossary_tooltip text ="Service" term_id ="service">}} dengan
74+
alamat IPv4 atau IPv6. Kamu dapat memilih keluarga alamat untuk clusterIP
75+
Service kamu dengan mengatur bagian, `.spec.ipFamily`, pada Service tersebut.
76+
Kamu hanya dapat mengatur bagian ini saat membuat Service baru. Mengatur bagian
77+
`.spec.ipFamily` bersifat opsional dan hanya boleh digunakan jika kamu berencana
78+
untuk mengaktifkan {{<glossary_tooltip text ="Service "term_id ="service">}}
79+
dan {{<glossary_tooltip text ="Ingress "term_id ="ingress">}} IPv4 dan IPv6
80+
pada klaster kamu. Konfigurasi bagian ini bukanlah syarat untuk lalu lintas
81+
[_egress_] (#lalu-lintas-egress).
82+
83+
{{< note >}}
84+
Keluarga alamat bawaan untuk klaster kamu adalah keluarga alamat dari rentang
85+
clusterIP Service pertama yang dikonfigurasi melalui opsi
86+
`--service-cluster-ip-range` pada kube-controller-manager.
87+
{{< /note >}}
88+
89+
Kamu dapat mengatur `.spec.ipFamily` menjadi salah satu dari:
90+
91+
* `IPv4`: Dimana server API akan mengalokasikan IP dari `service-cluster-ip-range` yaitu `ipv4`
92+
* `IPv6`: Dimana server API akan mengalokasikan IP dari `service-cluster-ip-range` yaitu `ipv6`
93+
94+
Spesifikasi Service berikut ini tidak memasukkan bagian `ipFamily`.
95+
Kubernetes akan mengalokasikan alamat IP (atau yang dikenal juga sebagai
96+
"_cluster IP_") dari `service-cluster-ip-range` yang dikonfigurasi pertama kali
97+
untuk Service ini.
98+
99+
{{< codenew file="service/networking/dual-stack-default-svc.yaml" >}}
100+
101+
Spesifikasi Service berikut memasukkan bagian `ipFamily`. Sehingga Kubernetes
102+
akan mengalokasikan alamat IPv6 (atau yang dikenal juga sebagai "_cluster IP_")
103+
dari `service-cluster-ip-range` yang dikonfigurasi untuk Service ini.
104+
105+
{{< codenew file="service/networking/dual-stack-ipv6-svc.yaml" >}}
106+
107+
Sebagai perbandingan, spesifikasi Service berikut ini akan dialokasikan sebuah alamat
108+
IPv4 (atau yang dikenal juga sebagai "_cluster IP_") dari `service-cluster-ip-range`
109+
yang dikonfigurasi untuk Service ini.
110+
111+
{{< codenew file="service/networking/dual-stack-ipv4-svc.yaml" >}}
112+
113+
### Tipe _LoadBalancer_
114+
115+
Penyedia layanan _cloud_ yang mendukung IPv6 untuk pengaturan beban eksternal,
116+
Mengatur bagian `type` menjadi` LoadBalancer` sebagai tambahan terhadap mengatur bagian
117+
`ipFamily` menjadi `IPv6` menyediakan sebuah _cloud load balancer_ untuk Service kamu.
118+
119+
## Lalu lintas _egress_
120+
121+
Penggunaan blok alamat IPv6 yang dapat dirutekan dan yang tidak dapat dirutekan
122+
secara publik diperbolehkan selama {{<glossary_tooltip text="CNI" term_id= "cni">}}
123+
dari penyedia layanan dapat mengimplementasikan transportasinya. Jika kamu memiliki
124+
Pod yang menggunakan IPv6 yang dapat dirutekan secara publik dan ingin agar Pod
125+
mencapai tujuan di luar klaster (misalnya Internet publik), kamu harus mengatur
126+
IP samaran untuk lalu lintas keluar dan balasannya. [_ip-masq-agent_](https://github.com/kubernetes-incubator/ip-masq-agent)
127+
bersifat _dual-stack aware_, jadi kamu bisa menggunakan ip-masq-agent untuk
128+
_masquerading_ IP dari klaster _dual-stack_.
129+
130+
## Masalah-masalah yang diketahui
131+
132+
* Kubenet memaksa pelaporan posisi IP untuk IPv4,IPv6 IP (--cluster-cidr)
133+
134+
{{% /capture %}}
135+
136+
{{% capture whatsnext %}}
137+
138+
* [Validasi jaringan _dual-stack_ IPv4/IPv6](/docs/tasks/network/validate-dual-stack)
139+
140+
{{% /capture %}}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Service
3+
id: service
4+
date: 2020-04-05
5+
full_link: /docs/concepts/services-networking/service/
6+
short_description: >
7+
Sebuah Cara untuk mengekspos aplikasi yang berjalan pada sebuah kumpulan Pod sebagai layanan jaringan.
8+
9+
aka:
10+
tags:
11+
- fundamental
12+
- core-object
13+
---
14+
Suatu cara yang abstrak untuk mengekspos aplikasi yang berjalan pada sebuah kumpulan
15+
{{<glossary_tooltip text="Pod" term_id="pod">}} sebagai layanan jaringan.
16+
<!--more-->
17+
18+
Rangkaian Pod yang ditargetkan oleh Service (biasanya) ditentukan oleh
19+
{{<glossary_tooltip text="selector" term_id="selector">}}.
20+
Jika lebih banyak Pod ditambahkan atau dihapus, maka kumpulan Pod yang cocok
21+
dengan Selector juga akan berubah. Service memastikan bahwa lalu lintas
22+
jaringan dapat diarahkan ke kumpulan Pod yang ada saat ini sebagai
23+
Workload.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: my-service
5+
spec:
6+
selector:
7+
app: MyApp
8+
ports:
9+
- protocol: TCP
10+
port: 80
11+
targetPort: 9376
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: my-service
5+
spec:
6+
ipFamily: IPv4
7+
selector:
8+
app: MyApp
9+
ports:
10+
- protocol: TCP
11+
port: 80
12+
targetPort: 9376
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: my-service
5+
spec:
6+
ipFamily: IPv6
7+
selector:
8+
app: MyApp
9+
ports:
10+
- protocol: TCP
11+
port: 80
12+
targetPort: 9376

0 commit comments

Comments
 (0)