Skip to content

Commit e3da1ce

Browse files
committed
docs: Translate Add External IP Address Tutorial
1 parent de69181 commit e3da1ce

File tree

3 files changed

+199
-0
lines changed

3 files changed

+199
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "Aplikasi Stateless"
3+
weight: 40
4+
---
5+
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
---
2+
title: Mengekspos Alamat IP Eksternal untuk Mengakses Aplikasi di dalam Klaster
3+
content_type: tutorial
4+
weight: 10
5+
---
6+
7+
<!-- overview -->
8+
9+
Dokumen ini menjelaskan bagaimana cara membuat objek Service Kubernetes
10+
yang mengekspos alamat IP eksternal.
11+
12+
13+
14+
15+
## {{% heading "prerequisites" %}}
16+
17+
18+
* Instal [kubectl](/id/docs/tasks/tools/install-kubectl/).
19+
20+
* Gunakan sebuah penyedia layanan cloud seperti Google Kubernetes Engine atau Amazon Web Services
21+
untuk membuat sebuah klaster Kubernetes. Tutorial ini membuat sebuah
22+
[_load balancer_ eksternal](/id/docs/tasks/access-application-cluster/create-external-load-balancer/),
23+
yang membutuhkan sebuah penyedia layanan cloud.
24+
25+
* Konfigurasi `kubectl` agar dapat berkomunikasi dengan Kubernetes API Server kamu.
26+
Untuk informasi lebih lanjut, kamu dapat merujuk pada dokumentasi penyedia layanan cloud
27+
yang kamu gunakan.
28+
29+
30+
31+
## {{% heading "objectives" %}}
32+
33+
* Jalankan lima buah instans dari aplikasi Hello World.
34+
* Buatlah sebuah objek Service yang mengekspos sebuah alamat IP eksternal.
35+
* Gunakan sebuah objek Service untuk mengakses aplikasi yang sedang dijalankan.
36+
37+
38+
39+
<!-- lessoncontent -->
40+
41+
## Membuat sebuah objek Service untuk sebuah aplikasi yang dijalankan pada lima buah Pod
42+
43+
1. Jalankan sebuah aplikasi Hello World pada klaster kamu:
44+
45+
{{< codenew file="service/load-balancer-example.yaml" >}}
46+
47+
```shell
48+
kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml
49+
```
50+
51+
52+
Perintah di atas akan membuat sebuah
53+
objek [Deployment](/id/docs/concepts/workloads/controllers/deployment/)
54+
dan sebuah objek
55+
[ReplicaSet](/id/docs/concepts/workloads/controllers/replicaset/)
56+
yang diasosiasikan dengan Deployment yang dibuat. ReplicaSet memiliki lima buah
57+
[Pod](/id/docs/concepts/workloads/pods/pod/),
58+
yang masing-masing dari Pod tersebut menjalankan aplikasi Hello World.
59+
60+
1. Tampilkan informasi mengenai Deployment:
61+
62+
kubectl get deployments hello-world
63+
kubectl describe deployments hello-world
64+
65+
1. Tampilkan informasi mengenai objek ReplicaSet:
66+
67+
kubectl get replicasets
68+
kubectl describe replicasets
69+
70+
1. Buatlah sebuah objek Service yang mengekspos deployment:
71+
72+
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
73+
74+
1. Tampilkan informasi mengenai Service:
75+
76+
kubectl get services my-service
77+
78+
Keluaran dari perintah di atas akan menyerupai tampilan berikut:
79+
80+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
81+
my-service LoadBalancer 10.3.245.137 104.198.205.71 8080/TCP 54s
82+
83+
{{< note >}}
84+
85+
Service dengan `type=LoadBalancer` didukung oleh penyedia layanan cloud eksternal, yang tidak tercakup dalam contoh ini, silahkan merujuk pada [laman berikut](/id/docs/concepts/services-networking/service/#loadbalancer) untuk informasi lebih lanjut.
86+
87+
{{< /note >}}
88+
89+
{{< note >}}
90+
91+
Jika sebuah alamat IP eksternal yang ditunjukkan dalam status \<pending\>, tunggulah hingga satu menit kemudian masukkan perintah yang sama lagi.
92+
93+
{{< /note >}}
94+
95+
1. Tampilkan informasi detail mengenai Service:
96+
97+
kubectl describe services my-service
98+
99+
Perintah di atas akan menampilkan keluaran sebagai berikut:
100+
101+
Name: my-service
102+
Namespace: default
103+
Labels: app.kubernetes.io/name=load-balancer-example
104+
Annotations: <none>
105+
Selector: app.kubernetes.io/name=load-balancer-example
106+
Type: LoadBalancer
107+
IP: 10.3.245.137
108+
LoadBalancer Ingress: 104.198.205.71
109+
Port: <unset> 8080/TCP
110+
NodePort: <unset> 32377/TCP
111+
Endpoints: 10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 more...
112+
Session Affinity: None
113+
Events: <none>
114+
115+
Pastikan nilai dari alamat IP eksternal (`LoadBalancer Ingress`) diekspos
116+
pada Service yang kamu buat. Pada contoh ini, alamat IP eksternal yang diberikan adalah 104.198.205.71.
117+
Kemudian pastikan nilai dari `Port` dan `NodePort`. Pada contoh ini, `Port`
118+
yang digunakan adalah 8080 dan `NodePort` adalah 32377.
119+
120+
1. Pada keluaran perintah sebelumnya, kamu dapat melihat beberapa Service dengan beberapa endpoint:
121+
10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 lainnya. Berikut ini merupakan alamat IP dari Pod
122+
dimana aplikasi tersebut dijalankan. Untuk melakukan verifikasi alamat-alamat IP yang digunakan oleh Pod,
123+
masukkan perintah berikut:
124+
125+
kubectl get pods --output=wide
126+
127+
Keluaran yang diberikan akan menyerupai:
128+
129+
NAME ... IP NODE
130+
hello-world-2895499144-1jaz9 ... 10.0.1.6 gke-cluster-1-default-pool-e0b8d269-1afc
131+
hello-world-2895499144-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc
132+
hello-world-2895499144-9m4h1 ... 10.0.0.6 gke-cluster-1-default-pool-e0b8d269-5v7a
133+
hello-world-2895499144-o4z13 ... 10.0.1.7 gke-cluster-1-default-pool-e0b8d269-1afc
134+
hello-world-2895499144-segjf ... 10.0.2.5 gke-cluster-1-default-pool-e0b8d269-cpuc
135+
136+
1. Gunakan alamat IP eksternal (`LoadBalancer Ingress`) untuk mengakses aplikasi Hello World:
137+
138+
curl http://<external-ip>:<port>
139+
140+
dimana `<external-ip>` adalah alamat IP eksternal (`LoadBalancer Ingress`)
141+
dari Service kamu, dan `<port>` adalah nilai dari `Port` dari deskripsi Service kamu.
142+
Jika kamu menggunakan minikube, menuliskan perintah `minikube service my-service` akan
143+
secara otomatis membuka aplikasi Hello World pada _browser_.
144+
145+
Respons yang diberikan apabila permintaan ini berhasil adalah sebuah pesan sapaan:
146+
147+
Hello Kubernetes!
148+
149+
150+
151+
152+
## {{% heading "cleanup" %}}
153+
154+
155+
Untuk menghapus Service, kamu dapat menggunakan perintah ini:
156+
157+
kubectl delete services my-service
158+
159+
Untuk menghapus Deployment, ReplicaSet, dan Pod-Pod yang digunakan untuk
160+
menjalankan aplikasi Hello World, kamu dapat memasukkan perintah berikut:
161+
162+
kubectl delete deployment hello-world
163+
164+
165+
166+
167+
## {{% heading "whatsnext" %}}
168+
169+
170+
Pelajari lebih lanjut cara untuk
171+
[menghubungkan aplikasi dengan berbagai Service](/id/docs/concepts/services-networking/connect-applications-service/).
172+
173+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: load-balancer-example
6+
name: hello-world
7+
spec:
8+
replicas: 5
9+
selector:
10+
matchLabels:
11+
app.kubernetes.io/name: load-balancer-example
12+
template:
13+
metadata:
14+
labels:
15+
app.kubernetes.io/name: load-balancer-example
16+
spec:
17+
containers:
18+
- image: gcr.io/google-samples/node-hello:1.0
19+
name: hello-world
20+
ports:
21+
- containerPort: 8080

0 commit comments

Comments
 (0)