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

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

发布时间:2019-11-09 02:08:07 所属栏目:MySql教程 来源:云计算AND容器技术
导读:说明 我们通过一个简单的示例来说明如何在Kubernets中部署一个应用, 一个Spring Boot项目提供数据库的增删改查操作 一个Mysql数据库持久化数据 通过Eclipse构建一个Spring Boot项目以下简称demo,其中连接mysql的property文件application-k8s.properties

创建demo应用部署的yaml文件demo-mysql-k8s.yaml

  1. # ------------------- Demo Deployment ------------------- # 
  2. kind: Deployment 
  3. apiVersion: apps/v1 
  4. metadata: 
  5.  labels: 
  6.  name: demo 
  7.  name: demo 
  8. spec:  
  9.  selector: 
  10.  matchLabels: 
  11.  app: demo 
  12.  template: 
  13.  metadata: 
  14.  labels: 
  15.  app: demo 
  16.  spec: 
  17.  containers: 
  18.  - name: demo 
  19.  image: 10.0.0.10:5000/app/demo:v2.0 
  20.  ports: 
  21.  - containerPort: 9999 
  22.  protocol: TCP 
  23.  env:  
  24.  - name: MYSQL_SERVICE_HOST 
  25.  value: '172.18.45.2' 
  26.  - name: MYSQL_SERVICE_PORT 
  27.  value: "3306" 
  28.  - name: MYSQL_DATABASE 
  29.  value: "demo" 
  30.  - name: MYSQL_ROOT_USER 
  31.  value: "root" 
  32.  - name: MYSQL_ROOT_PASSWORD 
  33.  value: "123456" 
  34.  livenessProbe: 
  35.  httpGet: 
  36.  scheme: HTTP 
  37.  path: /service/v1/demo 
  38.  port: 9999 
  39.  initialDelaySeconds: 30 
  40.  timeoutSeconds: 30 
  41. --- 
  42. # ------------------- Demo Service ------------------- # 
  43. ​ 
  44. kind: Service 
  45. apiVersion: v1 
  46. metadata: 
  47.  labels: 
  48.  name: demo 
  49.  name: demo 
  50. spec:  
  51.  ports: 
  52.  - port: 9900 
  53.  targetPort: 9999 
  54.  selector: 
  55.  app: demo 
  56.   

通过环境变量初始化了一些参数,这些参数与application-k8s.properties中的环境变量名对应,其中MYSQL_SERVICE_HOST是mysql部署后的enpoint IP地址。

通过kubectl命令行开始部署

  1. kubectl apply -f mysql-deployment.yaml 
  2. service/mysql created 
  3. deployment.apps/mysql created 

查看mysql的endpoint IP地址

  1. kubectl get service 
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 
  3. kubernetes ClusterIP 172.10.12.1 <none> 443/TCP 63d 
  4. mysql ClusterIP None <none> 3306/TCP 121m 
  5. ​ 
  6. kubectl describe service mysql 
  7. Name: mysql 
  8. Namespace: default 
  9. Labels: app=mysql 
  10. Annotations: kubectl.kubernetes.io/last-applied-configuration: 
  11.  {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"mysql"},"name":"mysql","namespace":"default"},"spec":{"c... 
  12. Selector: app=mysql 
  13. Type: ClusterIP 
  14. IP: None 
  15. Port: <unset> 3306/TCP 
  16. TargetPort: 3306/TCP 
  17. Endpoints: 172.18.45.2:3306 
  18. Session Affinity: None 
  19. Events: <none> 
  20. ​ 

可以看到mysql的enpoint IP地址是172.18.45.2,端口号是3306。

(编辑:晋中站长网)

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

热点阅读