微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

k8s上安装Presslabs MySQL Operator

Operator-MysqL安装

1、helm添加

helm安装不做说明

helm repo add presslabs https://presslabs.github.io/charts
helm repo update
helm pull presslabs/MysqL-operator

创建rabc.yaml

# 唯一需要修改的地方只有namespace,根据实际情况定义
apiVersion: v1
kind: ServiceAccount
Metadata:
  name: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: zhanghsn        #根据实际环境设定namespace,下面类同
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
Metadata:
  name: nfs-client-provisioner-runner
  namespace: zhanghsn
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
Metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: zhanghsn
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
Metadata:
  name: leader-locking-nfs-client-provisioner
    # replace with namespace where provisioner is deployed
  namespace: zhanghsn
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
Metadata:
  name: leader-locking-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: zhanghsn
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io

2、创建StorageClass

说明:我这里使用的是CCE,插件装好nfs,这里不需要操作

apiVersion: storage.k8s.io/v1
kind: StorageClass
Metadata:
  name: presslabs-managed-nfs-storage
  namespace: operator
provisioner: presslabs-MysqL-nfs-storage #这里的名称要和provisioner配置文件中的环境变量PROVISIONER_NAME保持一致parameters:  archiveOnDelete: "false"

3、安装operator

[root@cce-master1 MysqL-rabc]# kubectl apply -f ./rabc.yaml

helm install presslabs-MysqL-operator -name MysqL-operator  -f MysqL-operator/values.yaml --namespace zhanghsn --set rbac.enabled=true
[root@cce-master1 MysqL-rabc]# kubectl get ServiceAccount,ClusterRole,ClusterRoleBinding,Role,RoleBinding -n zhanghsn
[root@cce-master1 soft]# kubectl get pod,svc,ing,cm -n zhanghsn
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME                             READY   STATUS    RESTARTS   AGE
pod/presslabs-MysqL-operator-0   2/2     Running   0          4m23s

NAME                                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)            AGE
service/presslabs-MysqL-operator         ClusterIP   10.247.178.253   <none>        80/TCP             4m23s
service/presslabs-MysqL-operator-0-svc   ClusterIP   10.247.3.195     <none>        80/TCP,10008/TCP   4m23s

NAME                                       DATA   AGE
configmap/MysqL-operator-leader-election   0      4m3s
configmap/presslabs-MysqL-operator-orc     2      4m23s

#更新values.yaml,可以将副本修改
[root@cce-master1 soft]# helm upgrade presslabs-MysqL-operator --values MysqL-operator/values.yaml MysqL-operator --namespace zhanghsn --set rbac.enabled=true
[root@cce-master1 MysqL-rabc]# kubectl get pod -n zhanghsn -o wide|grep operator
presslabs-MysqL-operator-0           2/2     Running    0          7m      172.16.169.72    10.11.95.235   <none>           <none>
presslabs-MysqL-operator-1           2/2     Running    0          7m5s    172.16.169.109   10.11.95.235   <none>           <none>
presslabs-MysqL-operator-2           2/2     Running    0          7m20s   172.16.169.86    10.11.95.235   <none>           <none>
[root@cce-master1 MysqL-rabc]#

4版本镜像起不来,换位3版本镜像
里面的operator容器和orchestrator容器都会有选主的过程,这里对应的应该是presslabs-MysqL-operator-2, Operator POD在起来之后,其中给一个会成为leader leader的ip是svc的ip 会出现如下字样

2020/09/30 01:37:59 [INFO] raft: Election won. Tally: 2
2020/09/30 01:37:59 [INFO] raft: Node at 10.109.138.165:10008 [leader] entering leader state

4、查看

kubectl log -f presslabs-MysqL-operator-2 -c orchestrator -n operator

#骚操作,如果pod起不来,可以先把健康检查关闭MysqL-cluster是依赖他

4、安装MysqL集群

[root@cce-master1 soft]# helm pull presslabs/MysqL-cluster

vim values.yaml  #修改副本数和MysqL用户密码
replicas: 3

helm install presslabs-MysqL-cluster --name MysqL-cluster  -f values.yaml --namespace zhanghsn --set rbac.enabled=true
helm delete my-cluster  --purge
helm uninstall my-cluster

[root@cce-master1 MysqL-rabc]# kubectl get pod -n zhanghsn -o wide
NAME                                 READY   STATUS    RESTARTS   AGE     IP               NODE           NOMINATED NODE   READInesS GATES
presslabs-MysqL-cluster-db-MysqL-0   4/4     Running   0          53s     172.16.76.138    10.11.95.236   <none>           <none>
presslabs-MysqL-cluster-db-MysqL-1   4/4     Running   0          2m42s   172.16.169.89    10.11.95.235   <none>           <none>
presslabs-MysqL-cluster-db-MysqL-2   4/4     Running   0          12m     172.16.75.232    10.11.95.237   <none>           <none>
presslabs-MysqL-operator-0           2/2     Running   0          14m     172.16.169.72    10.11.95.235   <none>           <none>
presslabs-MysqL-operator-1           2/2     Running   0          14m     172.16.169.109   10.11.95.235   <none>           <none>
presslabs-MysqL-operator-2           2/2     Running   0          15m     172.16.169.86    10.11.95.235   <none>           <none>
[root@cce-master1 MysqL-rabc]#

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐