ClusterIP模式以及服务发现入门和调用
# ClusterIP 模式、服务发现基本入门和调用
把上面的mygo
再换成ClusterIP(Internal only)
模式,只能内部访问,应用只要在集群内部都可以访问,外部如公网则无法访问它。类似:mysql、redis
我们都不需要外部访问,就可以使用这个模式。
使用此模式之后,这里的 IP 和端口就不见了,变成这个模式之后,外部就无法访问了,我们需要自己写程序来访问。
package main
import (
"github.com/gin-gonic/gin"
"io/ioutil"
"log"
"net/http"
)
func main(){
r:=gin.Default()
r.Handle("GET","/", func(context *gin.Context) {
host:=context.Query("host")
if host==""{
context.JSON(400,gin.H{"error":"no host!"})
return
}
// http://mygo
rsp,err:=http.Get("http://"+host)
if err!=nil{
context.JSON(400,gin.H{"error":err})
}else{
b,err:=ioutil.ReadAll(rsp.Body)
if err!=nil{
context.JSON(400,gin.H{"error":err})
}else{
context.JSON(200,gin.H{"message":string(b)})
}
}
})
err:=r.Run(":80")
if err!=nil{
log.Fatal(err)
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Rancher2.4
使用k8s-coredns
作为服务发现基础,让在同一个命名空间内的可以通过service_name
直接解析。不同的则需要使用service_name.namespace_name
。
我们可以在同命名空间下部署一个HostPort
不同端口的上面的程序交叉编译的可执行文件,分别去不同的端口去访问。
编辑 (opens new window)
上次更新: 2022/11/20, 21:59:22