W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
此頁(yè)面顯示如何創(chuàng)建公開外部 IP 地址的 Kubernetes 服務(wù)對(duì)象。
kubectl
?。kubectl
?與 Kubernetes API 服務(wù)器通信。有關(guān)說(shuō)明,請(qǐng)參閱云供應(yīng)商文檔。apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: load-balancer-example
name: hello-world
spec:
replicas: 5
selector:
matchLabels:
app.kubernetes.io/name: load-balancer-example
template:
metadata:
labels:
app.kubernetes.io/name: load-balancer-example
spec:
containers:
- image: gcr.io/google-samples/node-hello:1.0
name: hello-world
ports:
- containerPort: 8080
kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml
前面的命令創(chuàng)建一個(gè) Deployment 對(duì)象和一個(gè)關(guān)聯(lián)的 ReplicaSet 對(duì)象。 ReplicaSet 有五個(gè) Pods, 每個(gè)都運(yùn)行 Hello World 應(yīng)用程序。
kubectl get deployments hello-world
kubectl describe deployments hello-world
kubectl get replicasets
kubectl describe replicasets
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
kubectl get services my-service
輸出類似于:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service LoadBalancer 10.3.245.137 104.198.205.71 8080/TCP 54s
提示:?type=LoadBalancer
? 服務(wù)由外部云服務(wù)提供商提供支持,本例中不包含此部分。
提示:如果外部 IP 地址顯示為 <pending>,請(qǐng)等待一分鐘再次輸入相同的命令。
kubectl describe services my-service
輸出類似于:
Name: my-service
Namespace: default
Labels: app.kubernetes.io/name=load-balancer-example
Annotations: <none>
Selector: app.kubernetes.io/name=load-balancer-example
Type: LoadBalancer
IP: 10.3.245.137
LoadBalancer Ingress: 104.198.205.71
Port: <unset> 8080/TCP
NodePort: <unset> 32377/TCP
Endpoints: 10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 more...
Session Affinity: None
Events: <none>
記下服務(wù)公開的外部 IP 地址(?LoadBalancer Ingress
?)。 在本例中,外部 IP 地址是 104.198.205.71。還要注意 ?Port
?和 ?NodePort
?的值。 在本例中,?Port
?是 8080,?NodePort
?是 32377。
kubectl get pods --output=wide
輸出類似于:
NAME ... IP NODE
hello-world-2895499144-1jaz9 ... 10.0.1.6 gke-cluster-1-default-pool-e0b8d269-1afc
hello-world-2895499144-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc
hello-world-2895499144-9m4h1 ... 10.0.0.6 gke-cluster-1-default-pool-e0b8d269-5v7a
hello-world-2895499144-o4z13 ... 10.0.1.7 gke-cluster-1-default-pool-e0b8d269-1afc
hello-world-2895499144-segjf ... 10.0.2.5 gke-cluster-1-default-pool-e0b8d269-cpuc
LoadBalancer Ingress
?)訪問(wèn) Hello World 應(yīng)用程序:curl http://<external-ip>:<port>
其中 ?<external-ip>
? 是你的服務(wù)的外部 IP 地址(?LoadBalancer Ingress
?),? <port>
? 是你的服務(wù)描述中的 ?port
?的值。 如果你正在使用 minikube,輸入 ?minikube service my-service
? 將在瀏覽器中自動(dòng)打開 Hello World 應(yīng)用程序。
成功請(qǐng)求的響應(yīng)是一條問(wèn)候消息:
Hello Kubernetes!
要?jiǎng)h除 Service,請(qǐng)輸入以下命令:
kubectl delete services my-service
要?jiǎng)h除正在運(yùn)行 Hello World 應(yīng)用程序的 Deployment,ReplicaSet 和 Pod,請(qǐng)輸入以下命令:
kubectl delete deployment hello-world
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: