前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes 权威指南学习笔记(1) -- mysql 小例子

kubernetes 权威指南学习笔记(1) -- mysql 小例子

作者头像
solate
发布2019-07-22 16:25:36
2K0
发布2019-07-22 16:25:36
举报
文章被收录于专栏:solate 杂货铺solate 杂货铺

mysql 小例子

  1. 创建一个mysql-rc.yaml 文件
代码语言:javascript
复制
apiVersion: v1
kind: ReplicationController # 副本控制器RC
metadata:
  name: mysql # RC 的名称,全局唯一
spec:
  replicas: 1 # 副本期待数量
  selector: 
    app: mysql   # 符合目标的Pod拥有此标签
  template:      # 根据此磨吧创建Pod的副本(实例)
    metadata:
      labels:
        app: mysql  # Pod 副本拥有的标签,对应的RC的Selector
    spec:
      containers:     # Pod 内容器的定义部分
      - name: mysql   # 容器的名称
        image: mysql  # 容器对应的Docker Image
        ports:
        - containerPort: 3306   # 容器应用监听的端口号
        env:                    # 注入容器的环境变量
        - name: MYSQL_ROOT_PASSWORD   # 这里第一次写错了 MySQL_ROOT_PASSWORD
          value: "root"

发布RC文件:

代码语言:javascript
复制
kubectl create -f mysql-rc.yaml

查看创建的RC

代码语言:javascript
复制
kubectl get rc

查看Pod的创建情况

代码语言:javascript
复制
kubectl get pods

创建失败,查看更多失败信息

代码语言:javascript
复制
kubectl describe pod example
代码语言:javascript
复制
kubectl get events

查看日志,错误信息

代码语言:javascript
复制
kubectl logs -p <pod name>

错误

代码语言:javascript
复制
➜  k8s kubectl logs -p mysql-lvq7v
error: database is uninitialized and password option is not specified
  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

这个是rc文件mysql 密码这里写的有问题,改掉就好了

  1. 创建一个service, 文件名mysql-svc.yaml
代码语言:javascript
复制
apiVersion: v1
kind: Service         # 表明是Kubernetes Service 
metadata:
  name: mysql         # Service 的全局唯一名称
spec:
  ports:
    - port: 3306      # Service 提供服务的端口号,这里写的时候写成了  - port:3306 没有用空格隔开
  selector:           # Service 对应的Pod 拥有这里定义的标签
    app: mysql

创建

代码语言:javascript
复制
kubectl create -f mysql-svc.yaml

查看刚才创建的service

代码语言:javascript
复制
kubectl get svc

碰到一个错误, 是由于缩进引起的

代码语言:javascript
复制
error: error validating "mysql-svc.yaml": error validating data: ValidationError(Service.spec.ports[0]): invalid type for io.k8s.api.core.v1.ServicePort: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false

根据 service的唯一名字,容器可以从环境变量中获取到Service对应的Cluster IP 地址和端口,就可以发起TCP/IP连接请求了。

这样就创建了一个mysql 的服务。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mysql 小例子
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档