栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

相同ns不同的pod之间互相访问

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

相同ns不同的pod之间互相访问

文章目录
  • 前言
    • 前几天和同事讨论k8s写了代码尝试
  • 一、服务1
  • 二、服务2
  • 三、尝试


前言 前几天和同事讨论k8s写了代码尝试 一、服务1
package main

import (
	"go.opencensus.io/plugin/ochttp"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", list)
	h := &ochttp.Handler{Handler: mux}
	log.Printf("Server listening! ...")
	log.Fatal(http.ListenAndServe(":9999", h))
}
func list(w http.ResponseWriter, r *http.Request) {
	log.Printf("Serving request: %s", r.URL.Path)
	response, err := http.DefaultClient.Get("http://demo-dep:8222/user")
	defer response.Body.Close()
	if err != nil {
		return
	}
	data, err := ioutil.ReadAll(response.Body)
	log.Printf(string(data))
	w.Write(data)
}

打包成镜像名字叫maingo上传到本地docker

二、服务2

用springboot写的get请求,发送/user返回字符串"hello"
打包成镜像名字叫10.0.24.3/library/javademo-01:v1上传到本地docker

三、尝试

然后 helm install 这两个yaml
deploymen

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: myapp
  creationTimestamp: null
  labels:
    app: demo-dep
  name: demo-dep
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-dep
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: demo-dep
    spec:
      containers:
      - image: 10.0.24.3/library/javademo-01:v1
        name: javademo-01
        resources: {}
status: {}

svc

apiVersion: v1
kind: Service
metadata:
  namespace: myapp
  creationTimestamp: null
  labels:
    app: demo-dep
  name: demo-dep
spec:
  ports:
  - port: 8222
    protocol: TCP
    targetPort: 8222
#    nodePort: 30811
  selector:
    app: demo-dep
#  type: NodePort
status:
  loadBalancer: {}

和

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: myapp
  creationTimestamp: null
  labels:
    app: demo-dep1
  name: demo-go
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-dep1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: demo-dep1
    spec:
      containers:
      - image: maingo:latest
        name: maingo
        imagePullPolicy: Never
        resources: {}
status: {}

svc

apiVersion: v1
kind: Service
metadata:
  namespace: myapp
  creationTimestamp: null
  labels:
    app: demo-dep1
  name: demo-go
spec:
  ports:
  - port: 9999
    protocol: TCP
    targetPort: 9999
#    nodePort: 30811
  selector:
    app: demo-dep1
#  type: NodePort
status:
  loadBalancer: {}

安装这两个chart
注意是不要把这两个chart内的labels设置成相同的,我一开始也是设置成相同的了,在pod内wget -O - -q http://demo-dep:8222/user时候可能会访问失败,查看ep会有两个地址,具体原因不清楚…

然后进入到服务2容器里面去
kubectl -n myapp exec -it demo-go – /bin/sh
访问
wget -O - -q http://demo-go:9999
会打印返回的字符串
“hello”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号