目录
目录README.md

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

关于

第三个作业

30.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号