java怎么拦截某个对象
412
2022-09-13
微服务 在 k8s 中部署网关 Eureka 服务
镜像仓库使用的 master1和 node1/2节点的 docker 的操作
[root@node1 ~]# mkdir /etc/docker/certs.d/reg.harbor.com -p[root@node1 ~]# cp reg.harbor.com.pem /etc/docker/certs.d/reg.harbor.com/reg.harbor.com.crt[root@node1 ~]# docker login reg.harbor.comUsername: adminPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. See~]# vim /etc/hosts192.168.0.10 reg.harbor.com
在 k8s 的 master1 节点操作
创建拉取私有镜像仓库需要的 secret
kubectl create ns ms && kubectl create secret docker-registry registry-pull-secret --docker-server=reg.harbor.com --docker-username=admin --docker-password=Harbor12345 -n ms[root@master ~]# kubectl get secret -n msNAME TYPE DATA AGEdefault-token-l2bcv kubernetes.io/service-account-token 3 3m10sregistry-pull-secret kubernetes.io/dockerconfigjson 1 109s
在 harbor 上创建一个项目 microservice
制作eureka镜像
[root@master ~]# cd microservic-test[root@master microservic-test]# cd eureka-service/[root@master eureka-service]# lsDockerfile pom.xml src target[root@master eureka-service]# cd src/[root@master src]# lsmain[root@master src]# cd main/[root@master main]# lsjava resources[root@master main]# cd resources/[root@master resources]# lsapplication-dev.yml application-fat.yml application.yml#这个就是eurka的一个配置[root@master resources]# cat application-fat.yml eureka: server: renewal-percent-threshold: 0.9 enable-self-preservation: false eviction-interval-timer-in-ms: 40000 instance: hostname: 127.0.0.1 prefer-ip-address: false client: register-with-eureka: true serviceUrl: defaultZone: fetch-registry: true域名为:pod当中主机名称+service名称+命名空间
[root@master eureka-service]# ls target/classes eureka-service.jar eureka-service.jar.original generated-sources maven-archiver maven-status[root@master eureka-service]# cat Dockerfile FROM java:8-jdk-alpineRUN apk add -U tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeCOPY ./target/eureka-service.jar ./EXPOSE 8888CMD java -jar -Deureka.instance.hostname=${MY_POD_NAME}.eureka.ms /eureka-service.jar
#这个镜像就是将eureka的一些配置封装在里面了[root@master eureka-service]# docker build -t reg.harbor.com/microservice/eureka:v1 .Sending build context to Docker daemon 47.26MBStep 1/5 : FROM java:8-jdk-alpine ---> 3fd9dd82815cStep 2/5 : RUN apk add -U tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ---> Using cache ---> a9034491fdd5Step 3/5 : COPY ./target/eureka-service.jar ./ ---> Using cache ---> 5216286f3d41Step 4/5 : EXPOSE 8888 ---> Using cache ---> cd6df6e0bf55Step 5/5 : CMD java -jar -Deureka.instance.hostname=${MY_POD_NAME}.eureka.ms /eureka-service.jar ---> Using cache ---> a455488fe74cSuccessfully built a455488fe74cSuccessfully tagged reg.harbor.com/microservice/eureka:v1[root@master eureka-service]# docker push reg.harbor.com/microservice/eureka:v1 The push refers to repository [reg.harbor.com/microservice/eureka]ada532ee2d35: Pushed 8994a8716f11: Pushed a1e7033f082e: Pushed 78075328e0da: Pushed 9f8566ee5135: Pushed v1: digest: sha256:e38703cbca2ed1a2ac801ce5b32777526ac66694fd7a848847faa9a911e6e85a size: 1370
部署eureka服务
[root@master k8s]# cat eureka.yaml ---apiVersion: extensions/v1beta1kind: Ingressmetadata: name: eureka namespace: ms annotations: kubernetes.io/ingress.class: "nginx"spec: rules: - host: eureka.ctnrs.com paths: - path: / backend: serviceName: eureka servicePort: 8888---apiVersion: v1kind: Servicemetadata: name: eureka namespace: msspec: clusterIP: None ports: - port: 8888 name: eureka selector: project: ms app: eureka---apiVersion: apps/v1kind: StatefulSetmetadata: name: eureka namespace: ms spec: replicas: 3 selector: matchLabels: project: ms app: eureka serviceName: "eureka" template: metadata: labels: project: ms app: eureka spec: imagePullSecrets: - name: registry-pull-secret containers: - name: eureka image: reg.harbor.com/microservice/eureka:v1 ports: - protocol: TCP containerPort: 8888 env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name resources: requests: cpu: 0.5 memory: 256Mi limits: cpu: 1 memory: 1Gi readinessProbe: tcpSocket: port: 8888 initialDelaySeconds: 60 periodSeconds: 10 livenessProbe: tcpSocket: port: 8888 initialDelaySeconds: 60 periodSeconds: 10
[root@master k8s]# kubectl get ingress -n msNAME CLASS HOSTS ADDRESS PORTS AGEeureka
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~