也称为INTERNAL-IP,这是各Node的物理网卡(也可能是VPS的虚拟网卡)的IP地址的映射地址(Host IP的映射IP),是ECS的私有IP地址,也可以称为Node IP 这部分信息可以通过kubectl get node -o wide获取得到。
POD IP
它是pod网络的IP地址,是每个POD分配的虚拟IP,可以使用 kubectl get pod -o wide来查看。
CLUSTER-IP
它是Service的地址,是一个虚拟地址(无法ping),是使用kubectl create时,–port 所指定的端口绑定的IP,各Service中的pod都可以使用CLUSTER-IP:port的方式相互访问(当然更应该使用ServiceName:port的方式),可以使用‘kubectl get svc’进行查看。
listener create succ!
Pet Store Service Server Register succ!
PutPet Request Received
PutPet Request Received
GetPet Request Received
GetPet Request Received
DeletePet Request Received
GetPet Request Received
客户端
client dial grpc server succ!
add cat tom
pet_type:PET_TYPE_CAT pet_id:”0” name:”tom” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:428828369}
add dog spike
pet_type:PET_TYPE_DOG pet_id:”1” name:”spike” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:430404202}
get cat tom
pet_type:PET_TYPE_CAT pet_id:”0” name:”tom” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:428828369}
get dog spike
pet_type:PET_TYPE_DOG pet_id:”1” name:”spike” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:430404202}
delete cat tom
delete successful
try to get cat tom again
rpc error: code = Unknown desc = this pet id does not exist!
结果截图
运行环境
虚拟机
Ubuntu 22.04.1 LTS
kind
kind v0.17.0 go1.19.2 linux/amd64
Docker
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.18.7
Git commit: baeda1f
Built: Tue Oct 25 18:01:58 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.18.7
Git commit: 3056208
Built: Tue Oct 25 17:59:49 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.10
GitCommit: 770bd0108c32f3fb5c73ae1264f7e503fe7b2661
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
thirdwork
请将第一次作业的程序通过Deployment或StatefuleSet的方式部署在Kubernetes上,作业环境可选择minikube(https://mikinikube.sigs.k8s.io)或kind(https://kind.sigs.k8s.io/) 请提交对应的Deployment/StatefulSet定义文件(yaml格式),以及相应的Service定义文件(yaml格式)
k8s的端口与IP
IP
NODE IP
也称为INTERNAL-IP,这是各Node的物理网卡(也可能是VPS的虚拟网卡)的IP地址的映射地址(Host IP的映射IP),是ECS的私有IP地址,也可以称为Node IP 这部分信息可以通过kubectl get node -o wide获取得到。
POD IP
它是pod网络的IP地址,是每个POD分配的虚拟IP,可以使用 kubectl get pod -o wide来查看。
CLUSTER-IP
它是Service的地址,是一个虚拟地址(无法ping),是使用kubectl create时,–port 所指定的端口绑定的IP,各Service中的pod都可以使用CLUSTER-IP:port的方式相互访问(当然更应该使用ServiceName:port的方式),可以使用‘kubectl get svc’进行查看。
PORT
targetPort
它是Pod内部容器的端口,比如tomcat是8080,PODIP:targetPort,构成了EndPoint
port
它是Service的虚拟端口,对targetPort进行映射。CLUSTER-IP:port,构成了微服务地址。
nodePort
它是集群对外暴露的端口,NODEIP:nodePort,构成对外访问的地址
运行说明
kind create cluster 创建cluster docker build -t pet-server:1.0 . 创建docker镜像 kind load docker-image pet-server:1.0 加载镜像 kubectl apply -f deployment.yaml kubectl apply -f service.yaml kubectl get pods -o wide kubectl logs pod-name 如果没有正常启动,查看日志寻找错误 kubectl get node -o wide 查看对应的INTERNAL-IP,将client的访问目标设置为NODE_INTERNAL-IP:NodePORT go run client/client.go
运行结果
服务端
listener create succ! Pet Store Service Server Register succ! PutPet Request Received PutPet Request Received GetPet Request Received GetPet Request Received DeletePet Request Received GetPet Request Received
客户端
client dial grpc server succ! add cat tom pet_type:PET_TYPE_CAT pet_id:”0” name:”tom” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:428828369} add dog spike pet_type:PET_TYPE_DOG pet_id:”1” name:”spike” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:430404202} get cat tom pet_type:PET_TYPE_CAT pet_id:”0” name:”tom” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:428828369} get dog spike pet_type:PET_TYPE_DOG pet_id:”1” name:”spike” created_at:{year:2022 month:11 day:19 hours:10 minutes:47 seconds:54 nanos:430404202} delete cat tom delete successful try to get cat tom again rpc error: code = Unknown desc = this pet id does not exist!
结果截图
运行环境
虚拟机
Ubuntu 22.04.1 LTS
kind
kind v0.17.0 go1.19.2 linux/amd64
Docker
Client: Docker Engine - Community Version: 20.10.21 API version: 1.41 Go version: go1.18.7 Git commit: baeda1f Built: Tue Oct 25 18:01:58 2022 OS/Arch: linux/amd64 Context: default Experimental: true
Server: Docker Engine - Community Engine: Version: 20.10.21 API version: 1.41 (minimum version 1.12) Go version: go1.18.7 Git commit: 3056208 Built: Tue Oct 25 17:59:49 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.10 GitCommit: 770bd0108c32f3fb5c73ae1264f7e503fe7b2661 runc: Version: 1.1.4 GitCommit: v1.1.4-0-g5fd4c4d docker-init: Version: 0.19.0 GitCommit: de40ad0