加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

一个简单的Kubernetes应用部署示例

发布时间:2019-11-08 04:50:20 所属栏目:编程 来源:云计算AND容器技术
导读:声名 我们通过一个简朴的示例来声名如安在Kubernets中陈设一个应用, 一个Spring Boot项目提供数据库的增编削查操纵 一个Mysql数据库耐久化数据 通过Eclipse构建一个Spring Boot项目以下简称demo,个中毗连mysql的property文件application-k8s.properties

建造Docker镜像

  1. docker build -t 10.0.0.10:5000/app/demo:v2.0 . 
  2. Sending build context to Docker daemon 44.18 MB 
  3. Step 1/5 : FROM daocloud.io/java:8 
  4.  ---> d23bdf5b1b1b 
  5. Step 2/5 : MAINTAINER xiaobaoqiang@163.com 
  6.  ---> Using cache 
  7.  ---> 6a8e7ffcb8b7 
  8. Step 3/5 : ADD ./demo.jar /tmp 
  9.  ---> 11bc5f618c77 
  10. Removing intermediate container c3942d277805 
  11. Step 4/5 : CMD java -jar /tmp/demo.jar 
  12.  ---> Running in f877685bb056 
  13.  ---> cb08fcc6b0a1 
  14. Removing intermediate container f877685bb056 
  15. Step 5/5 : EXPOSE 9999 
  16.  ---> Running in 86a145142954 
  17.  ---> 189f73beb27a 
  18. Removing intermediate container 86a145142954 
  19. Successfully built 189f73beb27a 

查察Docker镜像

  1. docker images 
  2. REPOSITORY TAG IMAGE ID CREATED SIZE 
  3. 10.0.0.10:5000/app/demo v2.0 189f73beb27a About an hour ago 687 MB 

将建造好的Docker镜像push到私有Registry

  1. docker push 10.0.0.10:5000/app/demo:v2.0 
  2. The push refers to a repository [10.0.0.10:5000/app/demo] 
  3. 6a6b9dbfc663: Pushed  
  4. 35c20f26d188: Pushed  
  5. c3fe59dd9556: Pushed  
  6. 6ed1a81ba5b6: Pushed  
  7. a3483ce177ce: Pushed  
  8. ce6c8756685b: Pushed  
  9. 30339f20ced0: Pushed  
  10. 0eb22bfb707d: Pushed  
  11. a2ae92ffcd29: Pushed  
  12. v2.0: digest: sha256:7296321564a7ace0bf1f2e8099fb7e0e01610efec5e1d1fec0c877b236bc0f5f size: 2212 

到此,我们的demo镜像已经筹备停当,下面开始筹备mysql镜像。

因为海外的Docker Hub网速较量慢,我们从海内的Docker Hub拉取一个mysql的镜像到当地

  1. docker pull daocloud.io/library/mysql:5.7.4 

将mysql镜像打tag,而且push到我们的私有Registry

  1. docker tag daocloud.io/library/mysql:5.7.4 10.0.0.10:5000/library/mysql:5.7.4 
  2. docker push 10.0.0.10:5000/library/mysql:5.7.4 
  3. The push refers to a repository [10.0.0.10:5000/library/mysql] 
  4. 5f70bf18a086: Pushed  
  5. 903c114b758c: Pushed  
  6. c8c909bc9ac1: Pushed  
  7. 6f19f89d53b4: Pushed  
  8. 6e82deab235b: Pushed  
  9. ca60b5cb617c: Pushed  
  10. ac906c9ec95d: Pushed  
  11. 4c816744690c: Pushed  
  12. 5.7.4: digest: sha256:afe1630e8c9bd318a5e72b2536c2daacb96b8135cc2c6d3465262b5c7b7d1831 size: 3846 

到此,我们mysql的镜像也筹备停当,下面开始陈设我们的demo应用和mysql

建设mysql的陈设yaml文件mysql-deployment.yaml

  1. apiVersion: v1 
  2. kind: Service 
  3. metadata: 
  4.  name: mysql 
  5.  labels: 
  6.  app: mysql 
  7. spec: 
  8.  ports: 
  9.  - port: 3306 
  10.  selector: 
  11.  app: mysql 
  12.  clusterIP: None 
  13.   
  14. --- 
  15. apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1 
  16. kind: Deployment 
  17. metadata: 
  18.  name: mysql 
  19.  labels: 
  20.  app: mysql 
  21. spec: 
  22.  selector: 
  23.  matchLabels: 
  24.  app: mysql 
  25.  template: 
  26.  metadata: 
  27.  labels: 
  28.  app: mysql 
  29.  spec: 
  30.  containers: 
  31.  - image: 10.0.0.10:5000/library/mysql:5.7.4 
  32.  name: mysql 
  33.  env: 
  34.  - name: MYSQL_ROOT_PASSWORD 
  35.  value: "123456" 
  36.  - name: MYSQL_DATABASE 
  37.  value: "demo" 
  38.  livenessProbe: 
  39.  tcpSocket: 
  40.  port: 3306 
  41.  ports: 
  42.  - containerPort: 3306 
  43.  name: mysql 
  44. ​ 

通过情形变量初始化了一些参数:

  1. MYSQL_ROOT_PASSWORD为mysql的root暗码
  2. MYSQL_DATABASE为mysql启动后默认建设的数据库

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读