使用 k8s 发现服务可以通过以下步骤实现:
创建一个 Deployment,该 Deployment 包含需要注册到服务发现的应用程序或服务。
创建一个 Service,该 Service 将在 Kubernetes 内部提供一个虚拟 IP 地址,并暴露给其他应用程序使用。
通过 DNS 或 Kubernetes API 来查找 Service 的 IP 地址和端口号。
配置应用程序或服务以使用 Service 的 IP 和端口号,以便它们可以访问该服务。
例如,在 YAML 文件中创建 Deployment 和 Service,如下所示:
Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app-image
ports:
- containerPort: 80
Service:
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
然后,您可以使用以下命令来查找 Service 的 IP 地址和端口号:
kubectl get svc my-app-service
您将看到输出类似于以下内容:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-app-service ClusterIP 10.233.45.106 <none> 80/TCP 1m
现在,您可以将应用程序或服务配置为使用 10.233.45.106:80
访问 my-app-service。