• K8S上运行MySQL和Tomcat


    K8S的搭建在https://www.cnblogs.com/xuziyu/p/11725976.html可以查看

    我们要在K8S上启动Mysql服务分为以下几步

    1.1为MySQL服务创建一个RC定义文件mysql-rc.yaml,下面给出完整的内容和解释

    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: mysql
    spec:
      replicas: 1
      selector:
        app: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
          - name: mysql
            image: mysql
            ports:
            - containerPort: 3306
            env:
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
    • 解释

    图片来源:《Kubernetes权威指南》第四版

    1.2 文件创建好了以后为了将它发布到Kubernetes集群中,我们需要在Master上执行命令

    [root@docker001 yum.repos.d]# kubectl apply -f mysql-svc.yaml
    接下来查看刚刚创建的RC
    [root@docker001 yum.repos.d]# kubectl get rc

     查看Pod的创建情况时可以运行下面的命令
      kubectl get pod

     这里的running刚刚开始可能是ContainerCreating,等1分钟左右再看一下

    2.1 创建一个Kubernetes Service ——MySQL的定义文件(名为mysql-svc.yaml)

    apiVersion: v1
    kind: Service
    metadata:
      name: mysql
    spec:
      type: NodePort
      ports:
        - port: 3306
          nodePort: 30060
      selector:
        app: mysql

    说明:这里我们type用了NodePort,为了可以外部用海狸链接

    2.2 运行kubectl命令,创建Service

    [root@docker001 yum.repos.d]# kubectl create -f mysql-svc.yaml

    运行kubectl命令查看刚刚创建的Service:

    kubectl get svc

     这时候我们就已经再K8S上启动好mysql服务了

     3.1 登录MySQL

    kubectl get rc,services
    
    yum install -y mysql
    
    mysql -h 10.109.17.0 -P 3306 -uroot -p123456

    如果mysql -h 10.109.17.0 -P 3306 -uroot -p123456执行不成功,请进行以下步骤

    [root@docker001 ~]# docker ps 
    
    找到mysql的CONTAINER ID
    
    这里我的是2f4e3f3314c9

     然后通过docker命令进入
    
    docker exec -it 2f4e3f3314c9 bash
    
    mysql -h 10.109.17.0 -P 3306 -uroot -p123456

    3.2  然后不出意外你就可以进入了

     然后这里你用海狸链接时无法连上的,具体原因我还没有弄清楚,但是很神奇的是执行完以下步骤就可以了

    mysql> alter user 'root'@'%' identified with mysql_native_password by'root';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> 
    mysql> alter user 'root'@'%' identified by '123456';
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> 
    mysql> use mysql;
    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
    mysql> 
    mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> 
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    然后这个时候你再用mysql -h 10.109.17.0 -P 3306 -uroot -p123456这个命令直接登录就OK了,具体原因还在探究中

     

     4.1 然后打开海狸链接

    • 30060端口是外部链接用的端口注意这里的这个外部端口在配置的时候:,我是避免了超出它的30000-32767这个范围,所以选了30060,你也可以改一下KUBE_API_ARGS参数范围
     在设置node节点上mysql的端口时候,如果端口太大,发现会报错,提示端口范围只允许在30000-32767之间,
    出现这个问题在于master的apiserver中KUBE_API_ARGS参数没设置,这个最好修改下,如下:
    #这里修改端口范围,默认是30000-32767,创建service时超出会报错 KUBE_API_ARGS="--service-node-port-range=20000-65535"
    • 这个参数具体在那个文档里改其实我也不是很清楚,但是在网上查了一下好像是生成证书的时候的用到的,具体的先不深究了  就用30000-32767之间的数把
  • 相关阅读:
    Windows Server 2003 IIS 使用 Excel.Application
    AutoCAD2008换硬盘后重新激活
    730KII 打印机 Win7 2017年11月更新系统补丁后无法打印
    军训卫生巾鞋垫尺码简易参考
    电阻功率与电流关系
    万用表判断场效应管的好坏
    避免电路接触时火花的产生
    phpexcel如何读和写大于26列的excel
    铅酸蓄电池正确使用与充电管理
    铅酸蓄电池单格最高与最低电压
  • 原文地址:https://www.cnblogs.com/xuziyu/p/11728099.html
Copyright © 2020-2023  润新知