题干
For this question, please set this context (In exam, diff cluster name)
kubectl config use-context kubernetes-admin@kubernetes
Part I:
- Create a Kubernetes ClusterIP service named nginx-service . This service should expose to nginx-deployment , using port 8080 and target port 80
Part II:
- Retrieve and store the IP addresses of the pods. Sort the output by their IP addresses in Ascending order and save it to the file pod_ips.txt in the following format:
第一部分:
- 创建名为
nginx-service
的KubernetesClusterIP
服务。该服务应该公开给nginx-deployment
,使用端口8080和目标端口80
第二部分:
- 获取并存储pod的IP地址。将输出按IP地址升序排序,保存到pod_ip .txt文件中,格式如下:
IP_ADDRESS 127.0.0.1 127.0.0.2 127.0.0.3
解题思路
- 切换K8S集群环境
kubectl config use-context kubernetes-admin@kubernetes
- 新建一个
nginx-service
的服务资源
kubectl expose deployment nginx-deployment \ --name nginx-serice --port 8080 --target-port 80
- 查看SVC资源。
controlplane $ k get svc nginx-serice NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-serice ClusterIP 10.97.207.205 <none> 8080/TCP 12m
- 检索并存储pods的IP地址。将输出结果按IP地址升序排序,保存到文件pod_ips.txt中
kubectl get pods -o=jsonpath='{range .items[*]}{.status.podIP}{"\n"}{end}' > pod_ips_tmp.txt
对IP进行排序
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 pod_ips_tmp.txt > pod_ips.txt
- -n:表示按照数值进行排序。
- -t .:指定字段分隔符为.,这样可以按照IP地址的每个段进行排序。
- -k 1,1 -k 2,2 -k 3,3 -k 4,4:指定按照第1个字段(IP地址的第1个段)、第2个字段(IP地址的第2个段)、第3个字段(IP地址的第3个段)、第4个字段(IP地址的第4个段)进行排序。
- pod_ips_tmp.txt:指定输入文件为pod_ips_tmp.txt。
- 将排序后的结果重定向到文件pod_ips.txt中。