다음 도큐먼트에는 이런 레이블이 없는 서비스를 사용하는 사례
https://kubernetes.io/docs/concepts/services-networking/service/
프로덕션 환경에서는 외부 데이터베이스 클러스터를 원하지만 테스트 환경에서는 자체 데이터베이스를 사용하는 경우
서비스가 다른 네임스페이스 또는 다른 클러스터의 서비스를 가리키는 경우
워크로드를 Kubernetes로 마이그레이션하는 경우 (접근 방식을 평가하는 동안 쿠버네티스에서 백엔드의 일부 서비스만 실행)
nano my-service-endpoints.yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
subsets:
- addresses:
- ip: 223.130.195.200
- ip: 199.201.110.204
ports:
- port: 80
kubectl apply -f my-service-endpoints.yaml
imkunyoung@cloudshell:~/kubeservice (k8s-inflearn)$ kubectl describe svc my-service
Name: my-service
Namespace: default
Labels: <none>
Annotations: cloud.google.com/neg: {"ingress":true}
Selector: <none>
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.108.2.92
IPs: 10.108.2.92
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints: 223.130.195.200:80,199.201.110.204:80
Session Affinity: None
Events: <none>
kubectl run http-go --image=gasbugs/http-go
kubectl exec -it http-go -- bash
root@http-go:/usr/src/app# curl my-service
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://www.malware-traffic-analysis.net/">here</a>.</p>
<hr>
<address>Apache/2.4.52 (Ubuntu) Server at my-service Port 80</address>
</body></html>
root@http-go:/usr/src/app# curl my-service
<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center> NWS </center>
</body>
</html>
imkunyoung@cloudshell:~ (k8s-inflearn)$ kubectl run -it --rm --image=busybox bash
/ # wget -O- my-service
Connecting to my-service (10.108.2.92:80)
Connecting to www.malware-traffic-analysis.net (199.201.110.204:443)