前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s安装zuul

k8s安装zuul

作者头像
summerking
发布2022-09-16 11:51:10
2930
发布2022-09-16 11:51:10
举报
文章被收录于专栏:summerking的专栏

Zuul最主要的功能两个功能是:对请求的路由和过滤:

其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础

而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础

# 1.基于DockerFile打包镜像

  • Dockerfile
代码语言:javascript
复制
FROM adoptopenjdk/openjdk8:latest

ADD app /app

WORKDIR /app

ENV botp=""
 
EXPOSE 28601

ENTRYPOINT ["sh","-c","java -Duser.timezone=Asia/Shanghai -Djava.security.egd=file:/dev/./urandom -jar com.summer.zuul.jar $botp"]

  • 步骤
代码语言:javascript
复制
[root@master app]# docker build -t k8szuul:v1 .
Sending build context to Docker daemon  59.23MB
Step 1/6 : FROM adoptopenjdk/openjdk8:latest
latest: Pulling from adoptopenjdk/openjdk8
da7391352a9b: Pull complete 
14428a6d4bcd: Pull complete 
2c2d948710f2: Pull complete 
cb4bdbb5e5c9: Pull complete 
ab9e86831f30: Pull complete 
Digest: sha256:93e1e6a3e400895fca1f7ca0b3a0de284220ef4c5398b4e524286459a96e209a
Status: Downloaded newer image for adoptopenjdk/openjdk8:latest
 ---> 41e67cbb9188
Step 2/6 : ADD app /app
 ---> 8b55685c2d6d
Step 3/6 : WORKDIR /app
 ---> Running in 9d62ad302ecc
Removing intermediate container 9d62ad302ecc
 ---> dbb658fc1a83
Step 4/6 : ENV botp=""
 ---> Running in b531d18b6207
Removing intermediate container b531d18b6207
 ---> 7b17863aafa5
Step 5/6 : EXPOSE 28601
 ---> Running in 52317ca49c66
Removing intermediate container 52317ca49c66
 ---> a935ec824bc5
Step 6/6 : ENTRYPOINT ["sh","-c","java -Duser.timezone=Asia/Shanghai -Djava.security.egd=file:/dev/./urandom -jar com.summer.zuul.jar $botp"]
 ---> Running in 9a85d6ed00b9
Removing intermediate container 9a85d6ed00b9
 ---> b2637b333a58
Successfully built b2637b333a58
Successfully tagged k8szuul:v1
[root@master app]# docker images
REPOSITORY                            TAG                   IMAGE ID            CREATED             SIZE
k8szuul                               v1                    b2637b333a58        2 hours ago         382MB

35

# 2.分发镜像

  • 保证每个节点都有该镜像
代码语言:javascript
复制
[root@master soft]# docker save -o kzuul20210105.tar k8szuul:v1
[root@master soft]# scp kzuul20210105.tar root@192.168.0.96:/home/summer/soft/
kzuul20210105.tar                                                                                                                                                                    100%  370MB  50.9MB/s   00:07    
[root@master soft]# scp kzuul20210105.tar root@192.168.0.98:/home/summer/soft/
kzuul20210105.tar                                                                                                                                                                    100%  370MB  58.4MB/s   00:06    

# 3.编写yml文件

  • pod.yml文件

点击查看

代码语言:javascript
复制
apiVersion: apps/v1
kind: StatefulSet
metadata:

  name: zuul
  labels:
    app: zuul
spec:
  serviceName: zuul
  replicas: 1
  selector:
    matchLabels:
      app: zuul
  template:
    metadata:
      labels:
        app: zuul
    spec:
      containers:
        - name: zuul
          image: k8szuul:v1
          imagePullPolicy: Never
          resources:
            limits:
              cpu: 450m
              memory: 1024Mi
            requests:
              cpu: 400m
              memory: 1024Mi
          env:
            - name: TZ
              value: Asia/Shanghai
          command: ["sh","-c","java -Duser.timezone=Asia/Shanghai -Djava.security.egd=file:/dev/./urandom -jar com.summer.zuul.jar"]
          ports:
            - containerPort: 28601
          volumeMounts:
            - name: vol-conf
              mountPath: /app/config
      volumes:
        - name: vol-conf
          hostPath:
            path: /home/summer/zuul/conf
            type: Directory

  • service.yml文件

点击查看

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: zuul
  labels:
    app: zuul
spec:
  type: NodePort
  ports:
    - port: 28601
      targetPort: 28601
      nodePort: 32081
  selector:
    app: zuul

# 4.执行yml文件创建pod

代码语言:javascript
复制
[root@master zuul]# kubectl create -f pod.yml 
statefulset.apps/zuul created
[root@master zuul]# kubectl create -f service.yml 
service/zuul created

# 5.验证

代码语言:javascript
复制
[root@master zuul]# kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
elasticsearch-54b8764b4c-5sxk7   1/1     Running   0          19h
eureka-0                         1/1     Running   0          24h
redis-0                          1/1     Running   0          23h
zuul-0                           1/1     Running   0          14s
[root@master zuul]# kubectl get svc
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGE
elasticsearch   NodePort    10.103.135.32    <none>        9200:30000/TCP    21h
eureka          ClusterIP   None             <none>        8761/TCP          24h
eureka-np       NodePort    10.102.231.246   <none>        8761:28600/TCP    24h
kubernetes      ClusterIP   10.96.0.1        <none>        443/TCP           28h
redis           NodePort    10.110.14.232    <none>        6379:30379/TCP    23h
zuul            NodePort    10.108.240.84    <none>        28601:32081/TCP   23s

此时连接集群任意节点ip:32081验证即可

代码语言:javascript
复制
[root@new1 conf]# telnet 192.168.0.98 32081
Trying 192.168.0.98...
Connected to 192.168.0.98.
Escape character is '^]'.

注册中心也注册上了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 1.基于DockerFile打包镜像
  • # 2.分发镜像
  • # 3.编写yml文件
  • # 4.执行yml文件创建pod
  • # 5.验证
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档