实战交付一套dubbo微服务到k8s集群(7)之交付dubbo服务的消费者集群到K8S

构建dubbo-demo-consumer,可以使用和dubbo-demo-service的流水线来构建

1.登录jenkins构建dubbo-demo-consumer

image-20200614220905963

2.填写构建dubbo-demo-consumer的信息

image-20200614221314388

构建完成了dubbo-demo-consumer(消费者)

image-20200615162530568

3.登录harbor仓库查看是否已经上传到app项目

image-20200616143654170

4.解析域名demo.od.com

在DNS服务器(mfyxw10.mfyxw.com)上执行

[root@mfyxw10 ~]# cat > /var/named/od.com.zone << EOF
$ORIGIN od.com.
$TTL 600   ; 10 minutes
@       IN  SOA dns.od.com.   dnsadmin.od.com. (
                             ;序号请加1,表示比之前版本要新
                             2020031310 ; serial
                             10800          ; refresh (3 hours)
                             900              ; retry (15 minutes)
                             604800         ; expire (1 week)
                             86400          ; minimum (1 day)
                              )
                      NS   dns.od.com.
$TTL 60 ;  1 minute
dns             A          192.168.80.10
harbor          A          192.168.80.50   ;添加harbor记录
k8s-yaml        A          192.168.80.50
traefik         A          192.168.80.100
dashboard       A          192.168.80.100
zk1             A          192.168.80.10
zk2             A          192.168.80.20
zk3             A          192.168.80.30
jenkins         A          192.168.80.100
dubbo-monitor   A          192.168.80.100
demo            A          192.168.80.100
EOF

重启DNS服务

[root@mfyxw10 ~]# systemctl restart named

测试是否能解析

[root@mfyxw10 ~]# dig -t A demo.od.com @192.168.80.10 +short
192.168.80.100

5.准备dubbo-demo-consumer(消费者)的资源配置清单

在运维主机(mfyxw50.mfyxw.com)上执行

创建一个consumer目录用于存放资源配置清单文件

[root@mfyxw50 ~]# mkdir -p /data/k8s-yaml/dubbo-demo-consumer

deployment.yaml文件内容如下:

[root@mfyxw50 ~]# cat > /data/k8s-yaml/dubbo-demo-consumer/deployment.yaml << EOF
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: dubbo-demo-consumer
  namespace: app
  labels: 
    name: dubbo-demo-consumer
spec:
  replicas: 1
  selector:
    matchLabels: 
      name: dubbo-demo-consumer
  template:
    metadata:
      labels: 
        app: dubbo-demo-consumer
        name: dubbo-demo-consumer
    spec:
      containers:
      - name: dubbo-demo-consumer
        image: harbor.od.com/app/dubbo-demo-consumer:master_20200614_2211
        ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 20880
          protocol: TCP
        env:
        - name: JAR_BALL
          value: dubbo-client.jar
        imagePullPolicy: IfNotPresent
      imagePullSecrets:
      - name: harbor
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      securityContext: 
        runAsUser: 0
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate: 
      maxUnavailable: 1
      maxSurge: 1
  revisionHistoryLimit: 7
  progressDeadlineSeconds: 600
EOF

service.yaml文件内容如下:

[root@mfyxw50 ~]# cat > /data/k8s-yaml/dubbo-demo-consumer/service.yaml << EOF
kind: Service
apiVersion: v1
metadata: 
  name: dubbo-demo-consumer
  namespace: app
spec:
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080
  selector: 
    app: dubbo-demo-consumer
  clusterIP: None
  type: ClusterIP
  sessionAffinity: None
EOF

Ingress.yaml文件内容如下:

[root@mfyxw50 ~]# cat > /data/k8s-yaml/dubbo-demo-consumer/Ingress.yaml << EOF
kind: Ingress
apiVersion: extensions/v1beta1
metadata: 
  name: dubbo-demo-consumer
  namespace: app
spec:
  rules:
  - host: demo.od.com
    http:
      paths:
      - path: /
        backend: 
          serviceName: dubbo-demo-consumer
          servicePort: 8080
EOF

6.应用dubbo-demo-consumer(消费者)的资源配置清单

在master节点(mfyxw30.mfyxw.com或mfyxw40.mfyxw.com)任意一台机器上执行即可

[root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-demo-consumer/deployment.yaml
deployment.extensions/dubbo-demo-consumer created
[root@mfyxw30 ~]# 
[root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-demo-consumer/service.yaml
service/dubbo-demo-consumer created
[root@mfyxw30 ~]# 
[root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-demo-consumer/Ingress.yaml
ingress.extensions/dubbo-demo-consumer created

7.查看名称空间app是否运行了dubbo-demo-consumer

[root@mfyxw30 ~]# kubectl get pod -n app
NAME                                   READY   STATUS    RESTARTS   AGE
dubbo-demo-consumer-6c7f6f598b-l2gdx   1/1     Running   0          44s
dubbo-demo-service-5bd9876c7d-pxpd9    1/1     Running   8          2d19h

8.登录monitor查看

image-20200616152224776

9.浏览器访问

image-20200616152121967

原文地址:https://www.cnblogs.com/Heroge/p/13141209.html