• mysql-operator 尝试与研究


    • 安装指南
    •  先下载到本地
    git clone https://github.com/kubernetes/charts.git
    •  安装helm

    参考:

    http://www.cnblogs.com/ericnie/p/8463127.html

    •  下载mysql-operator镜像
    docker pull  iad.ocir.io/oracle/mysql-operator:0.1.0

     同时下载mysqlserver和agent,启动mysql实例需要

    docker pull mysql/mysql-server:5.7.20-1.1.2
    
    docker pull wcr.io/oracle/mysql-agent:0.1.0
    •  建立命名空间
    kubectl create namespace mysql-operator
    • 创建mysql-operator

    [root@k8s-master mysql-operator]# helm install --name my-release mysql-operator --set rbac.enabled=true
    NAME: my-release
    LAST DEPLOYED: Tue May 22 14:53:39 2018
    NAMESPACE: default
    STATUS: DEPLOYED

    RESOURCES:
    ==> v1/ServiceAccount
    NAME SECRETS AGE
    mysql-operator 1 14m
    mysql-agent 1 14m

    ==> v1beta1/ClusterRole
    NAME AGE
    mysql-operator 14m

    ==> v1beta1/ClusterRoleBinding
    NAME AGE
    mysql-operator 14m
    mysql-agent 14m

    ==> v1beta1/Deployment
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    mysql-operator 1 1 1 1 14m

    ==> v1beta1/CustomResourceDefinition
    NAME KIND
    mysqlclusters.mysql.oracle.com CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlbackups.mysql.oracle.com CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlrestores.mysql.oracle.com CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlbackupschedules.mysql.oracle.com CustomResourceDefinition.v1beta1.apiextensions.k8s.io


    NOTES:
    Thanks for installing the MySQL Operator.

    Check if the operator is running with

    kubectl -n mysql-operator get po

    验证下结果

    [root@k8s-master mysql-operator]# kubectl get pods -n mysql-operator
    NAME                             READY     STATUS    RESTARTS   AGE
    mysql-operator-541631688-7937r   1/1       Running   0          52s

     获取crd

    [root@k8s-master cluster]# kubectl get crd
    NAME                                    KIND
    domains.weblogic.oracle                 CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlbackups.mysql.oracle.com           CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlbackupschedules.mysql.oracle.com   CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlclusters.mysql.oracle.com          CustomResourceDefinition.v1beta1.apiextensions.k8s.io
    mysqlrestores.mysql.oracle.com          CustomResourceDefinition.v1beta1.apiextensions.k8s.io

     

    • 集群建立

    各种集群建立,详细可以参考

    https://github.com/oracle/mysql-operator/blob/master/docs/user/clusters.md

    这里列一个最简单的。

    [root@k8s-master cluster]# cat cluster.yaml 
    apiVersion: "mysql.oracle.com/v1"
    kind: MySQLCluster
    metadata:
      name: mysql
    [root@k8s-master cluster]# kubectl create -f cluster.yaml 
    mysqlcluster "mysql" created
    [root@k8s-master cluster]# kubectl get mysqlclusters
    NAME      KIND
    mysql     MySQLCluster.v1.mysql.oracle.com

    发现在当前的命名空间下生成了实例

    [root@k8s-master cluster]# kubectl get pods
    NAME      READY     STATUS    RESTARTS   AGE
    busybox   1/1       Running   31         8d
    mysql-0   2/2       Running   0          14m
    tomcat    1/1       Running   7          7d
    [root@k8s-master cluster]# kubectl logs mysql-0  -c mysql-agent
    Starting mysql-agent version 0.1.0
    ERROR: logging before flag.Parse: I0523 02:11:46.287788      18 flags.go:52] FLAG: --address="0.0.0.0"
    ERROR: logging before flag.Parse: I0523 02:11:46.287883      18 flags.go:52] FLAG: --alsologtostderr="false"
    ERROR: logging before flag.Parse: I0523 02:11:46.287893      18 flags.go:52] FLAG: --healthcheck-port="10512"
    ERROR: logging before flag.Parse: I0523 02:11:46.287903      18 flags.go:52] FLAG: --hostname="mysql-0"
    ERROR: logging before flag.Parse: I0523 02:11:46.287910      18 flags.go:52] FLAG: --log-backtrace-at=":0"
    ERROR: logging before flag.Parse: I0523 02:11:46.287920      18 flags.go:52] FLAG: --log-dir=""
    ERROR: logging before flag.Parse: I0523 02:11:46.287927      18 flags.go:52] FLAG: --log-flush-frequency="5s"
    ERROR: logging before flag.Parse: I0523 02:11:46.287936      18 flags.go:52] FLAG: --logtostderr="true"
    ERROR: logging before flag.Parse: I0523 02:11:46.287943      18 flags.go:52] FLAG: --min-resync-period="12h0m0s"
    ERROR: logging before flag.Parse: I0523 02:11:46.287950      18 flags.go:52] FLAG: --mysql-cluster-name="mysql"
    ERROR: logging before flag.Parse: I0523 02:11:46.287956      18 flags.go:52] FLAG: --namespace="default"
    ERROR: logging before flag.Parse: I0523 02:11:46.287962      18 flags.go:52] FLAG: --stderrthreshold="2"
    ERROR: logging before flag.Parse: I0523 02:11:46.287969      18 flags.go:52] FLAG: --v="4"
    ERROR: logging before flag.Parse: I0523 02:11:46.287976      18 flags.go:52] FLAG: --vmodule=""
    ERROR: logging before flag.Parse: I0523 02:11:46.817877      18 cluster_manager.go:105] Database not yet running. Waiting...
    ERROR: logging before flag.Parse: I0523 02:11:56.941725      18 cluster_manager.go:105] Database not yet running. Waiting...
    ERROR: logging before flag.Parse: I0523 02:12:06.993075      18 cluster_manager.go:105] Database not yet running. Waiting...
    ERROR: logging before flag.Parse: I0523 02:12:17.415974      18 innodb_cluster.go:121] Clearing the MySQL binary logs
    ERROR: logging before flag.Parse: I0523 02:12:18.086997      18 cluster_manager.go:280] Creating the cluster on the primary instance
    ERROR: logging before flag.Parse: I0523 02:12:23.170507      18 cluster_manager.go:285] {
        "clusterName": "MySQLCluster",
        "defaultReplicaSet": {
            "name": "default",
            "primary": "mysql-0:3306",
            "status": "OK_NO_TOLERANCE",
            "statusText": "Cluster is NOT tolerant to any failures.",
            "topology": {
                "mysql-0:3306": {
                    "address": "mysql-0:3306",
                    "mode": "R/W",
                    "role": "HA",
                    "status": "ONLINE"
                }
            }
        }
    }
    ERROR: logging before flag.Parse: I0523 02:12:23.170595      18 cluster_manager.go:137] MySQL instance is online
    ERROR: logging before flag.Parse: I0523 02:12:23.345615      18 agent_controller.go:99] Creating event broadcaster
    ERROR: logging before flag.Parse: I0523 02:12:23.532123      18 reflector.go:202] Starting reflector *v1.Pod (19h15m21.324440719s) from github.com/oracle/mysql-operator/vendor/k8s.io/client-go/informers/factory.go:86
    ERROR: logging before flag.Parse: I0523 02:12:23.532225      18 reflector.go:240] Listing and watching *v1.Pod from github.com/oracle/mysql-operator/vendor/k8s.io/client-go/informers/factory.go:86
    ERROR: logging before flag.Parse: I0523 02:12:23.553086      18 agent_controller.go:107] Creating event broadcaster
    ERROR: logging before flag.Parse: I0523 02:12:23.553397      18 cluster_labeler.go:241] Starting the ClusterLabelerController
    ERROR: logging before flag.Parse: I0523 02:12:23.553412      18 cluster_labeler.go:244] Waiting for ClusterLabelerController informer caches to sync
    ERROR: logging before flag.Parse: I0523 02:12:23.553426      18 cache.go:30] Waiting for caches to sync for innodb-cluster-labeler controller
    ERROR: logging before flag.Parse: I0523 02:12:23.555114      18 agent_controller.go:166] Starting AgentController
    ERROR: logging before flag.Parse: I0523 02:12:23.555151      18 agent_controller.go:169] Waiting for caches to sync
    ERROR: logging before flag.Parse: I0523 02:12:23.555171      18 cache.go:30] Waiting for caches to sync for operator-backup-controller controller
    ERROR: logging before flag.Parse: I0523 02:12:23.555407      18 agent_controller.go:175] Starting AgentController
    ERROR: logging before flag.Parse: I0523 02:12:23.555419      18 agent_controller.go:178] Waiting for caches to sync
    ERROR: logging before flag.Parse: I0523 02:12:23.555427      18 cache.go:30] Waiting for caches to sync for operator-restore-controller controller
    ERROR: logging before flag.Parse: I0523 02:12:23.556287      18 reflector.go:202] Starting reflector *v1.MySQLBackup (0s) from github.com/oracle/mysql-operator/pkg/generated/informers/externalversions/factory.go:72
    ERROR: logging before flag.Parse: I0523 02:12:23.556320      18 reflector.go:240] Listing and watching *v1.MySQLBackup from github.com/oracle/mysql-operator/pkg/generated/informers/externalversions/factory.go:72
    ERROR: logging before flag.Parse: I0523 02:12:23.557559      18 reflector.go:202] Starting reflector *v1.MySQLRestore (0s) from github.com/oracle/mysql-operator/pkg/generated/informers/externalversions/factory.go:72
    ERROR: logging before flag.Parse: I0523 02:12:23.562579      18 reflector.go:240] Listing and watching *v1.MySQLRestore from github.com/oracle/mysql-operator/pkg/generated/informers/externalversions/factory.go:72
    ERROR: logging before flag.Parse: I0523 02:12:23.564784      18 reflector.go:202] Starting reflector *v1.MySQLCluster (0s) from github.com/oracle/mysql-operator/pkg/generated/informers/externalversions/factory.go:72
    ERROR: logging before flag.Parse: I0523 02:12:23.564827      18 reflector.go:240] Listing and watching *v1.MySQLCluster from github.com/oracle/mysql-operator/pkg/generated/informers/externalversions/factory.go:72
    ERROR: logging before flag.Parse: I0523 02:12:24.135073      18 cluster_manager.go:137] MySQL instance is online
    ERROR: logging before flag.Parse: I0523 02:12:24.153865      18 shared_informer.go:122] caches populated
    ERROR: logging before flag.Parse: I0523 02:12:24.153925      18 cache.go:37] Caches are synced for innodb-cluster-labeler controller
    ERROR: logging before flag.Parse: I0523 02:12:24.153946      18 cluster_labeler.go:249] Starting ClusterLabelerController controller worker
    ERROR: logging before flag.Parse: I0523 02:12:24.153965      18 cluster_labeler.go:252] Started ClusterLabelerController controller worker
    ERROR: logging before flag.Parse: I0523 02:12:24.154389      18 cluster_labeler.go:152] Labeling default/mysql-0 as primary
    ERROR: logging before flag.Parse: I0523 02:12:24.173303      18 shared_informer.go:122] caches populated
    ERROR: logging before flag.Parse: I0523 02:12:24.173358      18 cache.go:37] Caches are synced for operator-restore-controller controller
    ERROR: logging before flag.Parse: I0523 02:12:24.173386      18 agent_controller.go:186] Caches are synced
    ERROR: logging before flag.Parse: I0523 02:12:24.174961      18 patch.go:95] Patching Pod mysql-0/default: {"metadata":{"labels":{"v1.mysql.oracle.com/role":"primary"}}}
    ERROR: logging before flag.Parse: I0523 02:12:24.177780      18 shared_informer.go:122] caches populated
    ERROR: logging before flag.Parse: I0523 02:12:24.177837      18 cache.go:37] Caches are synced for operator-backup-controller controller
    ERROR: logging before flag.Parse: I0523 02:12:24.177859      18 agent_controller.go:176] Caches are synced
    ERROR: logging before flag.Parse: I0523 02:12:39.439539      18 cluster_manager.go:137] MySQL instance is online
    ERROR: logging before flag.Parse: I0523 02:12:54.769749      18 cluster_manager.go:137] MySQL instance is online
    ERROR: logging before flag.Parse: I0523 02:13:10.081533      18 cluster_manager.go:137] MySQL instance is online
    ERROR: logging before flag.Parse: I0523 02:13:25.442784      18 cluster_manager.go:137] MySQL instance is online
    [root@k8s-master cluster]# kubectl logs mysql-0  -c mysql
    ++ grep '^search' /etc/resolv.conf
    + search='search default.svc.cluster.local. svc.cluster.local. cluster.local.'
    + echo 'search default.svc.cluster.local. svc.cluster.local. cluster.local. mysql.default.svc.cluster.local'
    ++ cat /etc/hostname
    ++ grep -o '[^-]*$'
    + index=0
    ++ expr 1000 + 0
    + /entrypoint.sh --server_id=1000 --user=mysql --datadir=/var/lib/mysql --log-error=/var/lib/mysql/mysqld.err --default-storage-engine=innodb --default-tmp-storage-engine=innodb --internal-tmp-disk-storage-engine=innodb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_520_ci --core-file --default-password-lifetime=0 --default-time-zone=SYSTEM --explicit-defaults-for-timestamp=ON --performance-schema-consumer-events-transactions-current=ON --performance-schema-consumer-events-transactions-history=ON --innodb-buffer-pool-size=128M --innodb-buffer-pool-instances=4 --innodb-autoinc-lock-mode=2 --innodb-flush-method=O_DIRECT_NO_FSYNC --innodb-open-files=128 --innodb-log-buffer-size=4M --innodb-monitor-enable=% --innodb-print-all-deadlocks=ON --innodb-undo-log-truncate=ON --innodb-undo-tablespaces=2 --innodb-undo-logs=2 --binlog_checksum=NONE --gtid_mode=ON --enforce_gtid_consistency=ON --log_bin --binlog-format=ROW --log-slave-updates=ON --master-info-repository=TABLE --relay-log-info-repository=TABLE --slave-preserve-commit-order=ON --disabled_storage_engines=MyISAM,BLACKHOLE,FEDERATED,ARCHIVE --transaction-isolation=READ-COMMITTED --transaction-write-set-extraction=XXHASH64 --loose-group-replication-ip-whitelist=0.0.0.0/0
    [Entrypoint] MySQL Docker Image 5.7.20-1.1.2
    [Entrypoint] Initializing database
    [Entrypoint] Database initialized
    Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
    Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
    Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
    
    [Entrypoint] ignoring /docker-entrypoint-initdb.d/*
    
    [Entrypoint] Server shut down
    
    [Entrypoint] MySQL init process done. Ready for start up.
    
    [Entrypoint] Starting MySQL 5.7.20-1.1.2

     describe下新建的集群

    [root@k8s-master cluster]# kubectl describe mysqlclusters mysql
    Name:        mysql
    Namespace:    default
    Labels:        v1.mysql.oracle.com/cluster=mysql
            v1.mysql.oracle.com/version=0.1.0
    Annotations:    <none>
    API Version:    mysql.oracle.com/v1
    Kind:        MySQLCluster
    Metadata:
      Cluster Name:        
      Creation Timestamp:    2018-05-22T06:50:42Z
      Generation:        0
      Resource Version:    611750
      Self Link:        /apis/mysql.oracle.com/v1/namespaces/default/mysqlclusters/mysql
      UID:            71c8a94e-5d8c-11e8-aaa7-080027e2ae0a
    Spec:
      Replicas:    1
      Version:    5.7.20-1.1.2
    Status:
      Errors:    <nil>
      Metadata:
        Creation Timestamp:    <nil>
      Phase:        
    Events:            <none>

    研究继续中....

  • 相关阅读:
    10.汇编语言--伪指令(offset、prt、lengthof)
    9.汇编语言--算数运算,标记寄存器
    8.汇编语言--数据传输指令mov等
    7.汇编语言--定义数据类型、数组
    6.汇编语言--汇编基本元素、寄存器、内存初步调试
    5.汇编语言--输入输出
    4.汇编语言--更为简便的使用win32-api
    3.汇编语言--x86处理器架构
    微信小程序获取input输入框里面的value值
    学习微信小程序遇到的坑 ---跳转
  • 原文地址:https://www.cnblogs.com/ericnie/p/9072230.html
Copyright © 2020-2023  润新知