首页 > 编程知识 正文

快速搭建k8s集群,docker k8s部署

时间:2023-05-03 08:03:12 阅读:128771 作者:3451

k8s高可用性spring-cloud eureka构建群集查找镜像docker部署安全关闭验证docker-compose部署使用k8s部署helm部署群集注册服务和注册服务service-a

查找镜像

镜像地址:https://hub.docker.com/r/LH堆栈/eureka

根据镜像地址中的文档,进行docker、docker-compose、k8s、helm相关的部署验证

docker部门关闭安全认证docker run---- name eureka-p 876133608761-e security _ enable=false-e Java _ opts='-xmx 128 m-XM SSM

安全认证#打开关闭前启动的容器,防止端口冲突docker RM-feurekadockerrun---- name eureka-p 876133608761-e security _ username=admin1- - 请输入上面定义的用户名admin1、密码654321

部署docker-compose方法需要docker-compose、安装位置:3359 www.run OOB.com/docker/docker-compose.html。 这里只引入认证方式

#停止前的容器docker rm -f eureka# docker-compose脚本cat docker-compose.ymleofversion : '3' services 3360 eureka-1: container _ name 3360 eureka-1 loy : resources : limits : CPUs : '1' memory : ' 256 m ' logging 3360 options 3360 max-file 3: '1'环境curity _ enable 3360 truesecurity _ Serna my min eureka _ server _ URLs : ' http://admin : admin @ 182.168.100.100/er http://admin : admin @ 182.168.3358 3358 admin : admin @ 182.168.100.102/eureka ' networks 3360 eureka : ipv4_ address 3360182.168.100.100 eureka-2: container _ name 33: eureka-2 image eka sources : limits : CPUs : '1' memory : ' 256 m ' logging 3360 options 3360 max-file : '1' environment : Java: ble 3360 truesecurity _ Serna my min eureka _ server _ URLs 3360 ' http://admin : admin @ 182.168.100.100/eureka, http://admin : admin @ 182.168.3358 3358 admin : admin @ 182.168.100.102/eureka ' networks 3360 eureka : ipv4_ address 3360182.168.100.101 eureka-: container _ name 3: eureka-3 image euua ources : limits : CPUs : '1' memory : ' 256 m ' logging 3360 options 3360

max-file: "1" environment: JAVA_OPTS: "-Xmx128m -Xms128m" SECURITY_ENABLE: true SECURITY_USERNAME: admin SECURITY_PASSWORD: admin EUREKA_SERVER_URLS: "http://admin:admin@182.168.100.100/eureka,http://admin:admin@182.168.100.101/eureka,http://admin:admin@182.168.100.102/eureka" networks: eureka: ipv4_address: 182.168.100.102networks: eureka: driver: bridge ipam: driver: default config: - subnet: 182.168.0.0/16EOF#执行docker-composedocker-compose up -d




k8s方式部署

前提得安装k8s集群环境,安装方式查找资料即可

# 停掉之前docker-compose启动的eurekadocker-compose down# 生成statefulset脚本cat > eureka.yml<<EOFapiVersion: v1kind: Namespacemetadata: name: eureka---apiVersion: v1kind: ConfigMapmetadata: name: eureka namespace: eurekadata: SECURITY_USERNAME: "admin" SECURITY_PASSWORD: "123456" EUREKA_SERVER_URLS: "http://admin:123456@eureka-headless.eureka.svc.cluster.local:8761/eureka"---apiVersion: v1kind: Servicemetadata: name: eureka-headless namespace: eurekaspec: type: ClusterIP clusterIP: None selector: app: eureka-replica ports: - name: http port: 8761---apiVersion: v1kind: Servicemetadata: name: eureka namespace: eurekaspec: type: ClusterIP ports: - name: http port: 8761 selector: app: eureka clusterIP: 10.43.87.61---apiVersion: apps/v1kind: StatefulSetmetadata: name: eureka-cluster namespace: eurekaspec: replicas: 2 #必须和REPLICAS一致 serviceName: eureka-headless selector: matchLabels: app: eureka-replica template: metadata: labels: app: eureka-replica spec: containers: - name: eureka image: lhstack/eureka imagePullPolicy: IfNotPresent ports: - name: http containerPort: 8761 env: - name: IS_STATEFUL_SET value: "true" - name: NAMESPACE value: "eureka" - name: SECURITY_ENABLE value: "true" - name: SECURITY_USERNAME valueFrom: configMapKeyRef: key: SECURITY_USERNAME name: eureka - name: SECURITY_PASSWORD valueFrom: configMapKeyRef: key: SECURITY_PASSWORD name: eureka - name: SERVICE_NAME value: "eureka-headless" - name: REPLICAS value: "2" - name: JAVA_OPTS value: "-Xmx512m -Xms512m" resources: requests: cpu: 50m memory: 128Mi limits: cpu: 100m memory: 512Mi readinessProbe: httpGet: path: /actuator/health port: 8761 initialDelaySeconds: 5 failureThreshold: 5 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 2 livenessProbe: httpGet: path: /actuator/health port: 8761 initialDelaySeconds: 60 failureThreshold: 5 periodSeconds: 120 successThreshold: 1 timeoutSeconds: 2---apiVersion: apps/v1kind: Deploymentmetadata: name: eureka-deploy namespace: eurekaspec: replicas: 1 selector: matchLabels: app: eureka template: metadata: labels: app: eureka spec: containers: - name: eureka image: lhstack/eureka imagePullPolicy: IfNotPresent ports: - name: http containerPort: 8761 readinessProbe: httpGet: path: /actuator/health port: 8761 initialDelaySeconds: 5 failureThreshold: 5 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 2 livenessProbe: httpGet: path: /actuator/health port: 8761 initialDelaySeconds: 60 failureThreshold: 5 periodSeconds: 120 successThreshold: 1 timeoutSeconds: 2 resources: requests: cpu: 50m memory: 128Mi limits: cpu: 100m memory: 512Mi env: - name: SECURITY_ENABLE value: "true" - name: SECURITY_USERNAME valueFrom: configMapKeyRef: key: SECURITY_USERNAME name: eureka - name: SECURITY_PASSWORD valueFrom: configMapKeyRef: key: SECURITY_PASSWORD name: eureka - name: EUREKA_SERVER_URLS valueFrom: configMapKeyRef: key: EUREKA_SERVER_URLS name: eureka - name: JAVA_OPTS value: "-Xmx512m -Xms512m -Deureka.client.fetch-registry=true -Deureka.client.register-with-eureka=true"EOFkubectl apply -f eureka.ymlkubectl get pod -n eureka



这里deployment作为eureka集群里面的客户端,用于承载业务服务的注册,保证statefulset的eureka集群的高可用


使用helm部署集群 # 停止之前运行的eureka集群kubectl delete -f eureka.yml#拉取helm模板,需要git和helm环境#git安装 yum install -y git#helm安装https://github.com/helm/helm/releases

进入helm目录

安装集群

helm install eureka-cluster .



多刷新几下,可以看到负载均衡的过程



修改集群数量

helm upgrade --set replicas=5 eureka-cluster .

可以看到服务在滚动更新,增加新的,停掉老的

注册服务,测试

这里兼容2.x之后的版本哦

注册服务service-a



注册服务service-b,调用a提供的接口





版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。