Giter VIP home page Giter VIP logo

kstone-io / kstone Goto Github PK

View Code? Open in Web Editor NEW
668.0 668.0 107.0 5.03 MB

Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.

License: Apache License 2.0

Makefile 5.20% Dockerfile 1.00% Shell 5.70% Smarty 3.60% Python 5.54% Mustache 1.32% Go 77.65%
backup cloudnative dashboard data-migration etcd inspection kubernetes management monitoring operator webconsole

kstone's People

Contributors

engow avatar georgeguo2018 avatar jianhaiqing avatar joker-bai avatar lianghao208 avatar little-fang avatar maudl1n avatar qmloong avatar tangcong avatar walkingframe avatar wswcfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kstone's Issues

can we support etcd V2?

when i import etcd v2 into kstone, then status was Unknown.

etcd version
etcd Version: 2.3.4
Git SHA: df60227
Go Version: go1.6.2
Go OS/Arch: linux/amd64

and etcd 2379 port use https, 2380 use http
--initial-advertise-peer-urls "http://xx.xx.xx.xx:2380"
--listen-client-urls 'https://0.0.0.0:2379'

the kstone logs is
E1227 02:07:06.068092 1 helper.go:70] get new clientv3 cfg failed:tls: failed to find any PEM data in certificate input
E1227 02:07:06.068109 1 helper.go:95] failed to get new etcd clientv3,err is tls: failed to find any PEM data in certificate input
I1227 02:07:06.068244 1 event.go:291] "Event occurred" object="kstone/xxx-etcd" kind="EtcdCluster" apiVersion="kstone.tkestack.io/v1alpha1" type="Warning" reason="EtcdClusterUpdateStatus" message="failed to get cluster status tls: failed to find any PEM data in certificate input"
W1227 02:07:06.077150 1 etcdclusters_controller.go:389] cluster xxx-etcd is not ready

support learner node

TO DO List:

  • support learner node/kstone-etcd-opeator
  • support learner node/kstone-dashboard
  • support learner node/kstone

Create Cluster Error

Hi
I install the kstone successfully,but when I create cluster,its UI does not show,and it is wrong.Thanks.
image

kstone authentication support task list

  • submit proposal doc[#88 ]
  • kstone-api supports token provider, token generator and authenticator interface[#99 ]
  • kstone-api supports auth webhook
  • kstone-dashboard supports login feature[#103 ]
  • kstone-dashboard supports change password feature[#103 ]
  • kstone-api supports login/middleware router[#103 ]

web support

when more etcd cluster import to kstone. use etcd cluster id to display, was more difficulty to known the etcd below to which k8s cluster.

when the web site to display one more row, the row to explan the etcd below to which k8s cluster, which easier for humans to understand

in Operation center
Visualization Tool:
Choose Cluster : select new row(etcd测试集群)
Monitor/Inspetion:
Cluster Monitor: select new row(etcd测试集群)

just like
image

Upgrade the CRD version

Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"

k8s versions v1.22.4

Is the project still being developed?

I see last commit in July.

  1. Is the project still under active development?
  2. Is there a hosted service based on kstone?
  3. Is there commercial support?

After refreshing, the filled information disappears

image
During the "import cluster" operation, the interface stopped. I refreshed the lower interface. As a result, all the information I filled in before disappeared. If you refresh the page, the filled information will not disappear, which will be a very good thing.

The backup page occur "Internal Server Error" error

Steps:
"Cluster Management" -> "Operation" -> "Cluster Feature" -> "Backup: "(open)
Then don't fill in anything, just click the OK button. When I enter the backup page again
The backup page reports an error "Internal Server Error, please check the network or contact the administrator!"
image

Create Etcd Cluster By YAML OF CR

Git Can Not Find Examples For Creating Etcd Cluster And Backup By Yaml Of CR, Not By Dashboard.The Yaml Includes Setting of nodeAffinity,resources,persistence,serviceType label of Pod ...
Thanks.

Cannot login after changing the default password

When I install kstone following minikube installation guide, login in browser http://127.0.0.1:8080/login with default username admin and password [email protected], I'm requested to change the password. After changing the password (to [email protected]*) I cannot sign in with new password. I just get redirected back to http://127.0.0.1:8080/login.
kstone-dashboard-api pod has following logs:

[GIN] 2022/04/18 - 06:30:23 | 401 |     13.0142ms |       127.0.0.1 | GET      "/apis/etcdclusters"
E0418 06:30:25.488243       1 request.go:50] check password error: crypto/bcrypt: hashedPassword is not the hash of the given password
[GIN] 2022/04/18 - 06:30:25 | 401 |     64.4262ms |       127.0.0.1 | POST     "/apis/login"
[GIN] 2022/04/18 - 06:31:26 | 200 |     68.2519ms |       127.0.0.1 | POST     "/apis/login"
[GIN] 2022/04/18 - 06:31:49 | 200 |     75.1253ms |       127.0.0.1 | PUT      "/apis/user"
[GIN] 2022/04/18 - 06:31:53 | 200 |      65.007ms |       127.0.0.1 | POST     "/apis/login"
[GIN] 2022/04/18 - 06:31:54 | 401 |     11.1067ms |       127.0.0.1 | GET      "/apis/etcdclusters"
[GIN] 2022/04/18 - 06:43:00 | 200 |     70.2775ms |       127.0.0.1 | POST     "/apis/login"
[GIN] 2022/04/18 - 06:43:00 | 401 |     10.5591ms |       127.0.0.1 | GET      "/apis/etcdclusters"

Environment

kstone tag is v0.2.0-beta.1. I have similar installation like the minikube example, running in kind cluster locally on my laptop. Kubernetes version is v1.23.3 and I noticed that you recommend to use older versions between 1.14 and 1.20. However I think that my problem might not be due to unsupported Kubernetes version?

deploy kstone dashboard

I have one etcdcluster only, which is small. Can I just use dashboard to view etcdcluster status.

405_error

以nodeport的方式登录dashboard,导入集群会报这个错误:连接出错(405)!,请检查网络或联系管理员,跪求解!!

dashboard crash when creating cluster

  1. install kstone chart with following configuration
# version: master 78c67cf8e4aa8b704096cbc071e8eaa1b1de8a62
helm install kstone . -n kstone -f values.test.yaml

# ui version
kubectl -n kstone get pods kstone-dashboard-7c6cd6554c-7lj8z -o yaml |grep image
...
- image: tkestack/kstone-dashboard:v0.1.0-alpha.2
    imagePullPolicy: IfNotPresent
    image: tkestack/kstone-dashboard:v0.1.0-alpha.2
    imageID: docker-pullable://tkestack/kstone-dashboard@sha256:7bc9ba9e449bd9848f1074d060b8d6d51298cb4d15ff3f4ebe777e0fb3ed0f76
  1. access dashboard

  2. click Operation Center and then Create Cluster
    test-tke

helm install error.

helm version

version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}

helm install kstone . -n kstone

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(Prometheus.spec): unknown field "probeNamespaceSelector" in com.coreos.monitoring.v1.Prometheus.spec, ValidationError(Prometheus.spec): unknown field "probeSelector" in com.coreos.monitoring.v1.Prometheus.spec, ValidationError(Prometheus.spec): unknown field "shards" in com.coreos.monitoring.v1.Prometheus.spec]

原生k8s环境下部署报错Unauthorized

原生k8s环境(非tke环境)的安装步骤有吗?需要改哪些配置?我在原生k8s环境下简单部署了一下,prometheus服务反复重建中:

$ k2 get sts,pod -n kstone
NAME                                                       READY   AGE
statefulset.apps/prometheus-kstone-prometheus-prometheus   1/1     61s

NAME                                                READY   STATUS        RESTARTS   AGE
pod/kstone-backup-operator-5c77c949d8-m7s7w         1/1     Running       0          35m
pod/kstone-dashboard-5595764fd5-sk4r6               1/1     Running       0          35m
pod/kstone-dashboard-api-7cfc658f9f-vkwvm           1/1     Running       0          35m
pod/kstone-etcd-controller-6c6d996fcf-jsdtl         1/1     Running       0          35m
pod/kstone-etcd-operator-f9b4bd7-xbdwr              1/1     Running       0          35m
pod/kstone-grafana-5d5985ffdf-vkr7l                 2/2     Running       0          35m
pod/kstone-inspection-controller-65d6578554-zxjx5   1/1     Running       0          35m
pod/kstone-prometheus-operator-85dd8b5d99-m4snl     1/1     Running       0          35m
pod/prometheus-kstone-prometheus-prometheus-0       2/2     Terminating   0          61s

这是prometheus-operator的报错日志:

level=info ts=2021-12-09T10:54:17.573352638Z caller=main.go:295 msg="Starting Prometheus Operator" version="(version=0.49.0, branch=master, revision=2388bfa55)"
level=info ts=2021-12-09T10:54:17.573426783Z caller=main.go:296 build_context="(go=go1.16.5, user=paulfantom, date=20210706-17:43:37)"
level=info ts=2021-12-09T10:54:17.580278215Z caller=server.go:54 msg="enabling server side TLS"
level=info ts=2021-12-09T10:54:17.592804524Z caller=main.go:125 msg="Starting secure server on [::]:10250"
level=info ts=2021-12-09T10:54:17.594563066Z caller=operator.go:309 component=thanosoperator msg="connection established" cluster-version=v1.18.9
level=info ts=2021-12-09T10:54:17.594518358Z caller=operator.go:421 component=prometheusoperator msg="connection established" cluster-version=v1.18.9
level=info ts=2021-12-09T10:54:17.595023766Z caller=operator.go:430 component=prometheusoperator msg="CRD API endpoints ready"
level=info ts=2021-12-09T10:54:17.595047532Z caller=operator.go:449 component=alertmanageroperator msg="connection established" cluster-version=v1.18.9
level=info ts=2021-12-09T10:54:17.595109887Z caller=operator.go:458 component=alertmanageroperator msg="CRD API endpoints ready"
level=info ts=2021-12-09T10:54:17.595084193Z caller=operator.go:318 component=thanosoperator msg="CRD API endpoints ready"
level=info ts=2021-12-09T10:54:17.796953373Z caller=operator.go:261 component=thanosoperator msg="successfully synced all caches"
level=info ts=2021-12-09T10:54:18.396087837Z caller=operator.go:351 component=prometheusoperator msg="successfully synced all caches"
level=info ts=2021-12-09T10:54:18.397634362Z caller=operator.go:1221 component=prometheusoperator key=kstone/kstone-prometheus-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:18.497522759Z caller=operator.go:281 component=alertmanageroperator msg="successfully synced all caches"
level=info ts=2021-12-09T10:54:18.497765803Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:18.576327944Z caller=operator.go:1306 component=prometheusoperator key=kstone/kstone-prometheus-prometheus statefulset=prometheus-kstone-prometheus-prometheus shard=0 msg="recre
ating StatefulSet because the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:18.601315559Z caller=operator.go:1221 component=prometheusoperator key=cattle-monitoring-system/rancher-monitoring-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:18.672826348Z caller=operator.go:804 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="recreating AlertManager StatefulSet because
the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:18.689319741Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:18.791717511Z caller=operator.go:804 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="recreating AlertManager StatefulSet because
the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:18.804561025Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:18.916061885Z caller=operator.go:804 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="recreating AlertManager StatefulSet because
the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:19.279129482Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:19.383887819Z caller=operator.go:1306 component=prometheusoperator key=cattle-monitoring-system/rancher-monitoring-prometheus statefulset=prometheus-rancher-monitoring-prometheu
s shard=0 msg="recreating StatefulSet because the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbid
den"
level=info ts=2021-12-09T10:54:19.395885355Z caller=operator.go:804 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="recreating AlertManager StatefulSet because
the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:19.417586393Z caller=operator.go:1221 component=prometheusoperator key=kstone/kstone-prometheus-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:19.430864859Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:19.522897026Z caller=operator.go:804 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="recreating AlertManager StatefulSet because
the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:19.58892879Z caller=operator.go:1306 component=prometheusoperator key=kstone/kstone-prometheus-prometheus statefulset=prometheus-kstone-prometheus-prometheus shard=0 msg="recrea
ting StatefulSet because the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:19.604894838Z caller=operator.go:1221 component=prometheusoperator key=cattle-monitoring-system/rancher-monitoring-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:20.127681649Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:20.234899709Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:20.380352807Z caller=operator.go:1306 component=prometheusoperator key=cattle-monitoring-system/rancher-monitoring-prometheus statefulset=prometheus-rancher-monitoring-prometheu
s shard=0 msg="recreating StatefulSet because the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbid
den"
level=info ts=2021-12-09T10:54:20.397125163Z caller=operator.go:1221 component=prometheusoperator key=kstone/kstone-prometheus-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:20.529716104Z caller=operator.go:1306 component=prometheusoperator key=kstone/kstone-prometheus-prometheus statefulset=prometheus-kstone-prometheus-prometheus shard=0 msg="recre
ating StatefulSet because the update operation wasn't possible" reason="Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"
level=info ts=2021-12-09T10:54:20.532849411Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:20.597040563Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:20.915831566Z caller=operator.go:1221 component=prometheusoperator key=kstone/kstone-prometheus-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:21.051243142Z caller=operator.go:1221 component=prometheusoperator key=kstone/kstone-prometheus-prometheus msg="sync prometheus"
level=info ts=2021-12-09T10:54:21.113887188Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:21.214160287Z caller=operator.go:742 component=alertmanageroperator key=cattle-monitoring-system/rancher-monitoring-alertmanager msg="sync alertmanager"
level=info ts=2021-12-09T10:54:21.233518201Z caller=operator.go:1221 component=prometheusoperator key=kstone/kstone-prometheus-prometheus msg="sync prometheus"
level=error ts=2021-12-09T10:54:21.341324336Z caller=klog.go:116 component=k8s_client_runtime func=ErrorDepth msg="Sync "cattle-monitoring-system/rancher-monitoring-alertmanager" failed: synchronizing gover
ning service failed: updating service object failed: Operation cannot be fulfilled on services "alertmanager-operated": the object has been modified; please apply your changes to the latest version and try
again"

可能原因1:该集群已经通过rancher部署了一套kube-prometheus集群,其底层也是prometheus-operator,其使用crd名称相同但版本不一致,产生了冲突?

打开dashboard页面有报错,报错提示:Unauthorized

Binary Deployment Support

It would be a great feat if binary deployment could be supported. As a personal habit, I don't like git to install kstone, even though many people do.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.