在K8S平台部署Spring cloud微服务项目

22 篇文章 1 订阅

一: 传统部署和K8S部署的区别
传统部署-整体框架


K8S部署-整体框架


二: 安装Maria db并导入数据库
安装Maria db

# yum install mariadb-server mariadb -y

# systemctl start mariadb

# systemctl enable mariadb

# ps -ef|grep mariadb

mysql     14449  14287  0 Jun01 ?        00:01:34 /usr/libexec/mysqld --basedir=

/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=

/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root      41610  41561  0 13:30 pts/1    00:00:00 grep --color=auto mariadb

检查服务端口    
# netstat -ntlp|grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      14449/mysqld        

# systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-06-01 16:01:48 CST; 1 day 21h ago

创建数据库    
# mysql -uroot

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

MariaDB [(none)]>

MariaDB [(none)]> create database tb_order;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create database tb_product;

Query OK, 1 row aff

MariaDB [(none)]> create database tb_order;

Query OK, 1 row aff

MariaDB [(none)]> 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| tb_order           |
| tb_product         |
| tb_stock           |
+--------------------+
6 rows in set (0.01 sec)

MariaDB [(none)]> 

将SQL导入到 数据库中

MariaDB [(none)]>

MariaDB [(none)]>

#将订单服务微服务组件数据导入到tb_order数据库中

MariaDB [(none)]> use tb_order;

Database changed

MariaDB [tb_order]> source /root/software/springcloud/simple-microservice-dev3/db/order.sql;

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [tb_order]>

#将产品服务微服务组件数据导入到tb_product数据库中

MariaDB [tb_order]>

MariaDB [tb_order]> use tb_product ;

Database changed

MariaDB [tb_product]> source /root/software/springcloud/simple-microservice-dev3/db/product.sql

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 4 rows affected (0.00 sec)

Records: 4  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [tb_product]>

#将库存服务 微服务组件数据导入到 tb_stock数据库中

MariaDB [tb_product]> use tb_stock ;

Database changed

MariaDB [tb_stock]> source /root/software/springcloud/simple-microservice-dev3/db/stock.sql

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 4 rows affected (0.00 sec)

Records: 4  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [tb_stock]>

MariaDB [tb_stock]>  flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [tb_stock]>

检查导入的数据    
MariaDB [tb_stock]> show tables;

+--------------------+

| Tables_in_tb_stock |

+--------------------+

| stock              |

+--------------------+

1 row in set (0.00 sec)

MariaDB [tb_stock]>

MariaDB [tb_stock]> use tb_product;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [tb_product]> show tables;

+----------------------+

| Tables_in_tb_product |

+----------------------+

| product              |

+----------------------+

1 row in set (0.00 sec)

MariaDB [tb_product]> use tb_order;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [tb_order]> show tables;

+--------------------+

| Tables_in_tb_order |

+--------------------+

| orders             |

+--------------------+

1 row in set (0.01 sec)

MariaDB [tb_order]>

三: 修改源代码连接数据的地址
修改连接数据库的配置文件    
 xxx-service/src/main/resources/application-fat.yml

例如 产品服务组件,其它

组件方法是一样的

# product-service/product-service-biz/src/main/resources

# cat application-dev.yml

spring:

  datasource:

    url: jdbc:mysql://100.100.100.16:3306/tb_product?characterEncoding=utf-8

    username: root

    password: 123456

    driver-class-name: com.mysql.jdbc.Driver

eureka:

  instance:

    prefer-ip-address: false

  client:

    register-with-eureka: true

    fetch-registry: true

    service-url:

      defaultZone: http://localhost:8888/eureka

# cat application-fat.yml

spring:

  datasource:

    url: jdbc:mysql://100.100.100.16:3306/tb_product?characterEncoding=utf-8

    username: root

    password: 123456

    driver-class-name: com.mysql.jdbc.Driver

eureka:

  instance:

    prefer-ip-address: true

  client:

    register-with-eureka: true

    fetch-registry: true

    service-url:

#

四: 构建环境并将镜像打包到镜像仓库
需要具备 MVN 和jdk 环境

安装JDK    
#

#

# yum install java-1.8.0-openjdk  -y

# rpm -qa|grep openjdk

java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el7_8.x86_64

java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64

java-1.8.0-openjdk-devel-1.8.0.252.b09-2.el7_8.x86_64

安装MVN    
#yum install -y maven

# rpm -qa|grep maven

maven-wagon-2.4-3.el7.noarch

maven-3.0.5-17.el7.noarch

#

使用mvn 命令进行打包镜像;

微服务组件打包成镜像

mvn clean(清除上次打包的结果)

package(打包,打成java包)  

-D maven.test.skip=true(跳过单元测试,好多单元测试是有问题的,导致过不去)

# mvn clean package -Dmaven.test.skip=true

Reactor Summary:

[INFO]

[INFO] simple-microservice ............................... SUCCESS [0.105s]

[INFO] basic-common ...................................... SUCCESS [0.002s]

[INFO] basic-common-core ................................. SUCCESS [2.515s]

[INFO] gateway-service ................................... SUCCESS [1.335s]

[INFO] eureka-service .................................... SUCCESS [0.557s]

[INFO] product-service ................................... SUCCESS [0.001s]

[INFO] product-service-api ............................... SUCCESS [0.410s]

[INFO] stock-service ..................................... SUCCESS [0.001s]

[INFO] stock-service-api ................................. SUCCESS [0.414s]

[INFO] product-service-biz ............................... SUCCESS [0.543s]

[INFO] stock-service-biz ................................. SUCCESS [0.459s]

[INFO] order-service ..................................... SUCCESS [0.001s]

[INFO] order-service-api ................................. SUCCESS [0.689s]

[INFO] order-service-biz ................................. SUCCESS [0.485s]

[INFO] basic-common-bom .................................. SUCCESS [0.001s]

[INFO] portal-service .................................... SUCCESS [0.972s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 9.060s

[INFO] Finished at: Wed Jun 03 10:03:58 CST 2020

[INFO] Final Memory: 80M/661M

[INFO] ------------------------------------------------------------------------

#

打包成功后,会在每个微服务组件的目录产生一个target目录 产生一个jar 文件

打包镜像并推送到镜像仓库

# cat docker_build.sh

#!/bin/bash

docker_registry=100.100.100.11   //镜像仓库

service_list="eureka-service gateway-service order-service product-service stock-service portal-service"

service_list=${1:-${service_list}}

work_dir=$(dirname $PWD)

current_dir=$PWD

cd $work_dir

mvn clean package -Dmaven.test.skip=true

for service in $service_list; do

   cd $work_dir/$service

   if ls |grep biz &>/dev/null; then

      cd ${service}-biz

   fi

   service=${service%-*}

   image_name=$docker_registry/microservice/${service}:$(date +%F-%H-%M-%S)

   docker build -t ${image_name} .

   docker push ${image_name}

done

#

执行 打包镜像角本

#

# docker login 100.100.100.11

Authenticating with existing credentials...

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.

Configure a credential helper to remove this warning. See

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

#

# ./docker_build.sh

-----------------------------------------------------------------------

--------------------------------------------------------------------

#

已推送到镜像仓库

# docker images

REPOSITORY                                        TAG                   IMAGE ID            CREATED              SIZE

100.100.100.11/microservice/portal       2020-06-03-10-16-07   80b8138d66a0        About a minute ago   209MB

100.100.100.11/microservice/stock        2020-06-03-10-15-57   f76961fdf409        About a minute ago   212MB

100.100.100.11/microservice/product   2020-06-03-10-15-49   52a23d278a40        About a minute ago   212MB

100.100.100.11/microservice/order       2020-06-03-10-15-42   4954a674cd38        About a minute ago   212MB

100.100.100.11/microservice/gateway  2020-06-03-10-15-35   e28dc69a7e8c        About a minute ago   209MB

100.100.100.11/microservice/eureka     2020-06-03-10-15-19   3d6507548335        2 minutes ago        213MB

五: 在K8S平台部署 eureka集群
Eureka 注册中心代码    
# cat eureka.yaml

---

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  name: eureka

  namespace: ms

spec:

  rules:

    - host: eureka.ctnrs.com

      http:

        paths:

        - path: /

          backend:

            serviceName: eureka

            servicePort: 8888

---

apiVersion: v1

kind: Service

metadata:

  name: eureka

  namespace: ms

spec:

  clusterIP: None

  ports:

  - port: 8888

    name: eureka

  selector:

    project: ms

    app: eureka

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

  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: 100.100.100.11/microservice/eureka:2020-06-01-15-03-49

        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@node-16 k8s]#

创建一个namespace    
#

# kubectl create ns ms;

namespace/ms created

#

# kubectl get ns|grep ms

ms                     Active   57s

#

[root@node-16 k8s]#

创建secret认证    
# kubectl create secret docker-registry registry-pull-secret --docker-server=100.100.100.11 /

--docker-username=admin --docker-password=123456 --docker-email=admin@test.com -n ms

secret/registry-pull-secret created

部署eruka集群    
# kubectl apply -f eureka.yaml

ingress.extensions/eureka created

service/eureka created

statefulset.apps/eureka created

#

Eureka 是有状态的部署的,会一个个启用,先启用 eureka-0

# kubectl get pod -n ms

NAME       READY   STATUS    RESTARTS   AGE

eureka-0   1/1     Running   0          86s

eureka-1   0/1     Running   0          11s

# kubectl get pod -n ms -o wide

NAME       READY   STATUS    RESTARTS   AGE     IP            NODE      NOMINATED NODE   READINESS GATES

eureka-0   1/1     Running   0          2m32s   10.244.1.51   node-17   <none>           <none>

eureka-1   1/1     Running   0          77s     10.244.0.35   node-18   <none>           <none>

eureka-2   0/1     Running   0          5s      10.244.2.57   node-16   <none>           <none>#

验证Eureka解析    
# kubectl exec -it eureka-0 sh -n ms

/ # nslookup eureka

nslookup: can't resolve '(null)': Name does not resolve

Name:      eureka

Address 1: 10.244.1.51 eureka-0.eureka.ms.svc.cluster.local

Address 2: 10.244.0.35 eureka-1.eureka.ms.svc.cluster.local

Address 3: 10.244.2.57 eureka-2.eureka.ms.svc.cluster.local

/ #

/ #

/ # nslookup kubernetes.default

nslookup: can't resolve '(null)': Name does not resolve

Name:      kubernetes.default

Address 1: 10.0.0.1 kubernetes.default.svc.cluster.local

/ #

访问Eureka管理界面    
六: 部署网关gateway
yaml程序

#

# ls

docker_build.sh 

docker_build.sh.bak 

eureka.yaml              //注册 中心

gateway.yaml           //网关

order.yaml                //订单服务

portal.yaml              //前端

product.yaml          //产品服务

stock.yaml             //库存服务

#

# cat gateway.yaml 
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gateway 
  namespace: ms 
spec:
  rules:
    - host: gateway.ctnrs.com 
      http:
        paths:
        - path: /
          backend:
            serviceName: gateway
            servicePort: 9999
---
apiVersion: v1
kind: Service
metadata:
  name: gateway
  namespace: ms
spec:
  ports:
  - port: 9999 
    name: gateway
  selector:
    project: ms
    app: gateway
---
apiVersion: apps/v1
kind: Deployment 
metadata:
  name: gateway
  namespace: ms 
spec:
  replicas: 1
  selector:
    matchLabels:
      project: ms
      app: gateway
  template:
    metadata:
      labels:
        project: ms 
        app: gateway
    spec:
      imagePullSecrets:
      - name: registry-pull-secret
      containers:
      - name: gateway
        image: 100.100.100.11/microservice/gateway:2020-06-03-11-52-10
        imagePullPolicy: Always
        ports:
          - protocol: TCP
            containerPort: 9999 
        env:
          - name: JAVA_OPTS
            value: "-Xmx1g"
        resources:
          requests:
            cpu: 0.5
            memory: 256Mi
          limits:
            cpu: 1
            memory: 1Gi
        readinessProbe:
          tcpSocket:
            port: 9999
          initialDelaySeconds: 60
          periodSeconds: 10
        livenessProbe:
          tcpSocket:
            port: 9999
          initialDelaySeconds: 60
          periodSeconds: 10

部署网关服务组件

# ./docker_build.sh gateway-service

ingress.extensions/gateway created

service/gateway created

deployment.apps/gateway created

#

七: 部署微服务业务程序
部署微服务业务程序与前端

#部署产品服务

# ./docker_build.sh product-service

Successfully built 8aedd0a0168d

Successfully tagged 10.83.35.11/microservice/product:2020-06-02-16-31-33

The push refers to repository [10.83.35.11/microservice/product]

a040b55736bc: Pushed

2767a363d982: Layer already exists

a1e7033f082e: Layer already exists

78075328e0da: Layer already exists

9f8566ee5135: Layer already exists

2020-06-02-16-31-33: digest: sha256:cbdba1c25bf29b129dc7de77f4cf62f5bf7efb72419ed625f88a6ae9c0f24376 size: 1370

deployment.apps/product created

#

部署库存服务

# ./docker_build.sh stock-service

…………………………………………………………………..

The push refers to repository [10.83.35.11/microservice/stock]

850505111769: Pushed

2767a363d982: Layer already exists

a1e7033f082e: Layer already exists

78075328e0da: Layer already exists

9f8566ee5135: Layer already exists

2020-06-02-16-32-55: digest: sha256:40d71b8cc74b6faae91ff45a562ddb75d22f673fc810c2a60e4a043be21f87f5 size: 1370

deployment.apps/stock created

[root@node-16 k8s]#

部署订单服务

# ./docker_build.sh order-service

---------

The push refers to repository [10.83.35.11/microservice/order]

2030ae40a392: Pushed

2767a363d982: Layer already exists

a1e7033f082e: Layer already exists

78075328e0da: Layer already exists

9f8566ee5135: Layer already exists

2020-06-02-16-34-48: digest: sha256:463b3e27a4ed4b5f70bc01a9f5877326938f82d2ca2c24befabd61ac0b840315 size: 1370

deployment.apps/order created

[root@node-16 k8s]#

部署前端服务

 ./docker_build.sh portal-service

------------------------------------------------------

2767a363d982: Layer already exists

a1e7033f082e: Layer already exists

78075328e0da: Layer already exists

9f8566ee5135: Layer already exists

2020-06-02-16-35-32: digest: sha256:d10679e18a1eb15b0e8751e74de6b1ff2fd3e574da210454d080e3c28836d19c size: 1370

ingress.extensions/portal created

service/portal created

deployment.apps/portal created

[root@node-16 k8s]#

查看我们的微服务正常运行,这个根据自己的业务量启动副本数

# kubectl get pod,svc,ing -n ms

NAME                           READY   STATUS    RESTARTS   AGE

pod/eureka-0                   1/1     Running   0          20h

pod/eureka-1                   1/1     Running   0          20h

pod/eureka-2                   1/1     Running   0          20h

pod/gateway-89d85fdfb-bqbg9    1/1     Running   0          13m

pod/order-94dfb7c77-6fl27      1/1     Running   0          119s

pod/portal-664f5bd797-k2zjd    1/1     Running   0          74s

pod/product-7b7554fb8b-z4gtd   1/1     Running   0          5m12s

pod/stock-5558d8ddbb-wh4rg     1/1     Running   0          3m50s

NAME              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE

service/eureka    ClusterIP   None         <none>        8888/TCP   20h

service/gateway   ClusterIP   10.0.0.183   <none>        9999/TCP   13m

service/portal    ClusterIP   10.0.0.87    <none>        8080/TCP   74s

NAME                         HOSTS               ADDRESS   PORTS   AGE

ingress.extensions/eureka    eureka.ctnrs.com              80      20h

ingress.extensions/gateway   gateway.ctnrs.com             80      13m

ingress.extensions/portal    portal.ctnrs.com              80      74s

[root@node-16 k8s]#

八: 注册中心检查服务组件
Eureka 有三台pod组成分别分配在

三个node上面,三台数据同步

实现Node高冗余


微服务组件自动注册到ureka中

微服务组件是以ip +端口的方式

注册到Ureka中


九: 前端应用访问
前端域名

portal.ctnrs.com

# kubectl get ing -n ms

NAME                         HOSTS               ADDRESS   PORTS   AGE
ingress.extensions/eureka    eureka.ctnrs.com              80      42h
ingress.extensions/gateway   gateway.ctnrs.com             80      141m
ingress.extensions/portal    portal.ctnrs.com              80      141m

查询商品服务    


 

查询订单服务    


 

微服务验证在K8S平台部署成功!

 
————————————————
版权声明:本文为CSDN博主「wx_doitroot」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40017427/article/details/106521729

#########################################

k8s部署校园网系统、学生成绩查询、论坛、springboot项目、java项目
https://blog.csdn.net/yanggd1987/article/details/107628001讲了k8s部署springboot的几个需要注意的地方(存储、资源限制、健康检查)
https://blog.csdn.net/weixin_44729138/article/details/106023274讲了springboot的打包
https://blog.csdn.net/u010948569/article/details/107125243
https://blog.csdn.net/qq_34125999/article/details/108722892
https://blog.csdn.net/beijie1930/article/details/100953275
https://blog.csdn.net/yanggd1987/article/details/109635821
https://blog.csdn.net/weixin_39132936/article/details/103260481
https://blog.csdn.net/mryang125/article/details/108456272
https://www.cnblogs.com/cannel/p/11104250.html
https://blog.csdn.net/mryang125/article/details/108456272打包jar包
https://blog.csdn.net/ciqingloveless/article/details/82467077
https://blog.csdn.net/qq_40017427/article/details/106521729打包mvn包
https://blog.csdn.net/m0_50180963/article/details/113646027

https://www.jianshu.com/p/d6835a121bae?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微服务是什么?微服务是用于构建应用程序的架构风格,一个大的系统可由一个或者多个微服务组成,微服务架构可将应用拆分成多个核心功能,每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作和出现故障的时候不会相互影响。为什么要用微服务?单体架构下的所有代码模块都耦合在一起,代码量大,维护困难,想要更新一个模块的代码,也可能会影响其他模块,不能很好的定制化代码。微服务中可以有java编写、有Python编写的,他们都是靠restful架构风格统一成一个系统的,所以微服务本身与具体技术无关、扩展性强。大型电商平台微服务功能图为什么要将SpringCloud项目部署k8s平台SpringCloud只能用在SpringBoot的java环境中,而kubernetes可以适用于任何开发语言,只要能被放进docker的应用,都可以在kubernetes上运行,而且更轻量,更简单。SpringCloud很多功能都跟kubernetes重合,比如服务发现,负载均衡,配置管理,所以如果把SpringCloud部署k8s,那么很多功能可以直接使用k8s原生的,减少复杂度。Kubernetes作为成熟的容器编排工具,在国内外很多公司、世界500强等企业已经落地使用,很多中小型公司也开始把业务迁移到kubernetes中。kubernetes已经成为互联网行业急需的人才,很多企业都开始引进kubernetes技术人员,实现其内部的自动化容器云平台的建设。对于开发、测试、运维、架构师等技术人员来说k8s已经成为的一项重要的技能,下面列举了国内外在生产环境使用kubernetes的公司: 国内在用k8s的公司:阿里巴巴、百度、腾讯、京东、360、新浪、头条、知乎、华为、小米、富士康、移动、银行、电网、阿里云、青云、时速云、腾讯、优酷、抖音、快手、美团等国外在用k8s的公司:谷歌、IBM、丰田、iphone、微软、redhat等整个K8S体系涉及到的技术众多,包括存储、网络、安全、监控、日志、DevOps、微服务等,很多刚接触K8S的初学者,都会感到无从下手,为了能让大家系统地学习,克服这些技术难点,推出了这套K8S架构师课程。Kubernetes的发展前景 kubernetes作为炙手可热的技术,已经成为云计算领域获取高薪要掌握的重要技能,在招聘网站搜索k8s,薪资水平也非常可观,为了让大家能够了解k8s目前的薪资分布情况,下面列举一些K8S的招聘截图: 讲师介绍:  先超容器云架构师、IT技术架构师、DevOps工程师,曾就职于世界500强上市公司,拥有多年一线运维经验,主导过上亿流量的pv项目的架构设计和运维工作;具有丰富的在线教育经验,对课程一直在改进和提高、不断的更新和完善、开发更多的企业实战项目。所教学员遍布京东、阿里、百度、电网等大型企业和上市公司。课程学习计划 学习方式:视频录播+视频回放+全套源码笔记 教学服务:模拟面试、就业指导、岗位内推、一对一答疑、远程指导 VIP终身服务:一次购买,终身学习课程亮点:1. 学习方式灵活,不占用工作时间:可在电脑、手机观看,随时可以学习,不占用上班时间2.老师答疑及时:老师24小时在线答疑3. 知识点覆盖全、课程质量高4. 精益求精、不断改进根据学员要求、随时更新课程内容5. 适合范围广,不管你是0基础,还是拥有工作经验均可学习:0基础1-3年工作经验3-5年工作经验5年以上工作经验运维、开发、测试、产品、前端、架构师其他行业转行做技术人员均可学习课程部分项目截图   课程大纲 k8s+SpringCloud全栈技术:基于世界500强的企业实战课程-大纲第一章 开班仪式老师自我介绍、课程大纲介绍、行业背景、发展趋势、市场行情、课程优势、薪资水平、给大家的职业规划、课程学习计划、岗位内推第二章 kubernetes介绍Kubernetes简介kubernetes起源和发展kubernetes优点kubernetes功能kubernetes应用领域:在大数据、5G、区块链、DevOps、AI等领域的应用第三章  kubernetes中的资源对象最小调度单元Pod标签Label和标签选择器控制器Replicaset、Deployment、Statefulset、Daemonset等四层负载均衡器Service第四章 kubernetes架构和组件熟悉谷歌的Borg架构kubernetes单master节点架构kubernetes多master节点高可用架构kubernetes多层架构设计原理kubernetes API介绍master(控制)节点组件:apiserver、scheduler、controller-manager、etcdnode(工作)节点组件:kube-proxy、coredns、calico附加组件:prometheus、dashboard、metrics-server、efk、HPA、VPA、Descheduler、Flannel、cAdvisor、Ingress     Controller。第五章 部署多master节点的K8S高可用集群(kubeadm)第六章 带你体验kubernetes可视化界面dashboard在kubernetes中部署dashboard通过token令牌登陆dashboard通过kubeconfig登陆dashboard限制dashboard的用户权限在dashboard界面部署Web服务在dashboard界面部署redis服务第七章 资源清单YAML文件编写技巧编写YAML文件常用字段,YAML文件编写技巧,kubectl explain查看帮助命令,手把手教你创建一个Pod的YAML文件第八章 通过资源清单YAML文件部署tomcat站点编写tomcat的资源清单YAML文件、创建service发布应用、通过HTTP、HTTPS访问tomcat第九章  kubernetes Ingress发布服务Ingress和Ingress Controller概述Ingress和Servcie关系安装Nginx Ingress Controller安装Traefik Ingress Controller使用Ingress发布k8s服务Ingress代理HTTP/HTTPS服务Ingress实现应用的灰度发布-可按百分比、按流量分发第十章 私有镜像仓库Harbor安装和配置Harbor简介安装HarborHarbor UI界面使用上传镜像到Harbor仓库从Harbor仓库下载镜像第十一章 微服务概述什么是微服务?为什么要用微服务微服务的特性什么样的项目适合微服务?使用微服务需要考虑的问题常见的微服务框架常见的微服务框架对比分析第十二章 SpringCloud概述SpringCloud是什么?SpringCloudSpringBoot什么关系?SpringCloud微服务框架的优缺点SpringCloud项目部署k8s的流程第十三章 SpringCloud组件介绍服务注册与发现组件Eureka客户端负载均衡组件Ribbon服务网关Zuul熔断器HystrixAPI网关SpringCloud Gateway配置中心SpringCloud Config第十四章 将SpringCloud项目部署k8s平台的注意事项如何进行服务发现?如何进行配置管理?如何进行负载均衡?如何对外发布服务?k8s部署SpringCloud项目的整体流程第十五章 部署MySQL数据库MySQL简介MySQL特点安装部署MySQLMySQL数据库导入数据对MySQL数据库授权第十六章 将SpringCLoud项目部署k8s平台SpringCloud微服务电商框架安装openjdk和maven修改源代码、更改数据库连接地址通过Maven编译、构建、打包源代码在k8s部署Eureka组件在k8s部署Gateway组件在k8s部署前端服务在k8s部署订单服务在k8s部署产品服务在k8s部署库存服务第十七章 微服务的扩容和缩容第十八章 微服务的全链路监控什么是全链路监控?为什么要进行全链路监控?全链路监控能解决哪些问题?常见的全链路监控工具:zipkin、skywalking、pinpoint全链路监控工具对比分析第十九章 部署pinpoint服务部署pinpoint部署pinpoint agent在k8s中重新部署带pinpoint agent的产品服务在k8s中重新部署带pinpoint agent的订单服务在k8s中重新部署带pinpoint agent的库存服务在k8s中重新部署带pinpoint agent的前端服务在k8s中重新部署带pinpoint agent的网关和eureka服务Pinpoint UI界面使用第二十章 基于Jenkins+k8s+harbor等构建企业级DevOps平台第二十一章 基于Promethues+Alert+Grafana搭建企业级监控系统第二十二章 部署智能化日志收集系统EFK 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值