Code Monkey home page Code Monkey logo

lucas's Introduction

lucas

etcd v3 key value browser

Build Status Codecov License

What is lucas

lucas is etcd v3 api browser,You can use lucas to operate kubernetes service discovery conveniently.

Usage

NAME:
   lucas - A etcd v3 key/value browser implemented in go

USAGE:
   lucas [global options] command [command options] [arguments...]

VERSION:
   0.0.1

COMMANDS:
   run  run lucas web server

GLOBAL OPTIONS:
   --debug                          set debug mode to lucas
   --endpoints value                machine addresses in the cluster (default: "http://127.0.0.1:2379,http://127.0.0.1:4001")
   --cert-file value                identify HTTPS client using this SSL certificate file
   --key-file value                 identify HTTPS client using this SSL key file
   --ca-file value                  verify certificates of HTTPS-enabled servers using this CA bundle
   --help                           show help
   --version                        print the version

Run in docker

# Simply use docker command     
docker run -d -p 8088:8080  -v /etc/kubernetes/pki/etcd/:/etc/kubernetes/pki/etcd/ -e CA_FILE=/etc/kubernetes/pki/etcd/ca.pem -e CERT_FILE=/etc/kubernetes/pki/etcd/etcd-client.pem -e KEY_FILE=/etc/kubernetes/pki/etcd/etcd-client-key.pem -e ENDPOINTS="YOUR ENDPOINTS" registry.cn-hangzhou.aliyuncs.com/ringtail/lucas:0.0.2

# use yaml          
kubectl create -f kubernetes-deployment.yaml (Add master node deployment affinity)

Demo

lucas's People

Contributors

ringtail avatar xiusj 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

lucas's Issues

Archive this project

I attempted to build and run this but failed miserably: The go version used is 1.8 which is quite old, and build on an arm64 machine failed even after modding and vendoring all dependencies with go 1.21 which, along with the most recent issue having interactions from 2022, leads me to believe that this project is no longer actively maintained. If this repository were to be archived this fact would become immediately obvious for everyone that ended up here from the official ETCD page :-)

lucas can not get etcd key/value, error in logs

2020/01/13 07:30:26 http: panic serving 10.0.61.153:15182: runtime error: invalid memory address or nil pointer dereference
goroutine 3346 [running]:
net/http.(*conn).serve.func1(0xc42041a460)
/usr/local/go/src/net/http/server.go:1721 +0xd0
panic(0x91d960, 0xca5f80)
/usr/local/go/src/runtime/panic.go:489 +0x2cf
github.com/ringtail/lucas/backend/services.(*Store).List(0xc4201d6740, 0x0, 0x0, 0xc420397ac8, 0x5f6ce8, 0x0)
/src/github.com/ringtail/lucas/backend/services/store.go:73 +0x17a
github.com/ringtail/lucas/backend/services.(*Store).ListByPath(0xc4201d6740, 0x0, 0x0, 0x3)
/src/github.com/ringtail/lucas/backend/services/store.go:96 +0x64
github.com/ringtail/lucas/backend/handlers.StoreHandler(0xc6d3a0, 0xc4201a35e0, 0xc42041e300)
/src/github.com/ringtail/lucas/backend/handlers/storeHandler.go:34 +0x5ea
net/http.HandlerFunc.ServeHTTP(0x9e6818, 0xc6d3a0, 0xc4201a35e0, 0xc42041e300)
/usr/local/go/src/net/http/server.go:1942 +0x44
net/http.(*ServeMux).ServeHTTP(0xc42012adb0, 0xc6d3a0, 0xc4201a35e0, 0xc42041e300)
/usr/local/go/src/net/http/server.go:2238 +0x130
github.com/ringtail/lucas/backend.(*LucasServer).Middleware.func1(0xc6d3a0, 0xc4201a35e0, 0xc42041e200)
/src/github.com/ringtail/lucas/backend/backend.go:28 +0x17e
net/http.HandlerFunc.ServeHTTP(0xc4201231a0, 0xc6d3a0, 0xc4201a35e0, 0xc42041e200)
/usr/local/go/src/net/http/server.go:1942 +0x44
net/http.serverHandler.ServeHTTP(0xc420142160, 0xc6d3a0, 0xc4201a35e0, 0xc42041e200)
/usr/local/go/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc42041a460, 0xc6dbe0, 0xc4203897c0)
/usr/local/go/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2668 +0x2ce

etcd key太多无法列出

具体报错信息如下:

time="2018-12-13T09:56:36Z" level=error msg="Failed to list keys from etcd, because of rpc error: code = ResourceExhausted desc = grpc: received message larger than max (9506813 vs. 4194304)"

http: panic serving 172.16.0.128:53660: runtime error: invalid memory address or nil pointer dereference

大佬好:

环境版本:
kubernetes: 1.11.5
docker: 17.03-ce
linux: centos 4.18.16

通过k8s yaml文件创建有如下问题,但是docker创建就没有问题
通过k8s yaml创建问题如下:
2018/12/13 04:48:17 http: panic serving 172.16.0.128:53642: runtime error: invalid memory address or nil pointer dereference
goroutine 18 [running]:
net/http.(*conn).serve.func1(0xc420152000)
/usr/local/go/src/net/http/server.go:1721 +0xd0
panic(0x91d960, 0xca5f80)
/usr/local/go/src/runtime/panic.go:489 +0x2cf
github.com/ringtail/lucas/backend/services.createTlsConf(0xc420014008, 0x1f, 0xc420014069, 0x25, 0xc42001403a, 0x21, 0xc420032a98, 0x66c7aa, 0xc420032a38)
/src/github.com/ringtail/lucas/backend/services/store.go:58 +0xe6
github.com/ringtail/lucas/backend/services.New(0xc42001409a, 0x1b, 0xc420014008, 0x1f, 0xc420014069, 0x25, 0xc42001403a, 0x21, 0xc420123260, 0x14, ...)
/src/github.com/ringtail/lucas/backend/services/store.go:34 +0xf1
github.com/ringtail/lucas/backend/handlers.StoreHandler(0xc6d3a0, 0xc4201242a0, 0xc42000ac00)
/src/github.com/ringtail/lucas/backend/handlers/storeHandler.go:24 +0x8c3
net/http.HandlerFunc.ServeHTTP(0x9e6818, 0xc6d3a0, 0xc4201242a0, 0xc42000ac00)
/usr/local/go/src/net/http/server.go:1942 +0x44
net/http.(*ServeMux).ServeHTTP(0xc420127260, 0xc6d3a0, 0xc4201242a0, 0xc42000ac00)
/usr/local/go/src/net/http/server.go:2238 +0x130
github.com/ringtail/lucas/backend.(*LucasServer).Middleware.func1(0xc6d3a0, 0xc4201242a0, 0xc42015e000)
/src/github.com/ringtail/lucas/backend/backend.go:28 +0x17e
net/http.HandlerFunc.ServeHTTP(0xc4201230e0, 0xc6d3a0, 0xc4201242a0, 0xc42015e000)
/usr/local/go/src/net/http/server.go:1942 +0x44
net/http.serverHandler.ServeHTTP(0xc420093ef0, 0xc6d3a0, 0xc4201242a0, 0xc42015e000)
/usr/local/go/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc420152000, 0xc6dbe0, 0xc42014a0c0)
/usr/local/go/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2668 +0x2ce

我的yaml文件如下:

apiVersion: v1
kind: Service
metadata:
annotations:
derrick.service.type: nodeport
derrick.version: 0.0.14
labels:
derrick.service: lucas
name: lucas
namespace: se
spec:
ports:

  • name: "8080"
    port: 8080
    targetPort: 8080
    nodePort: 30003
    selector:
    derrick.service: lucas
    type: NodePort

apiVersion: extensions/v1beta1
#apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
derrick.version: 0.0.14
labels:
derrick.service: lucas
name: lucas
namespace: se
spec:
replicas: 1
template:
metadata:
labels:
derrick.service: lucas
spec:
# nodeSelector:
# node-role.kubernetes.io/master: ''
# tolerations:
# - key: node-role.kubernetes.io/master
# operator: Exists
containers:
- image: registry.cn-hangzhou.aliyuncs.com/ringtail/lucas:0.0.1
name: web
ports:
- containerPort: 8080
env:
- name: CA_FILE
value: /etc/kubernetes/pki/etcd/ca.pem
- name: CERT_FILE
value: /etc/kubernetes/pki/etcd/etcd.pem
- name: KEY_FILE
value: /etc/kubernetes/pki/etcd/etcd-key.pem
- name: ENDPOINTS
value: "https://etcd-leader-ip:2379"
volumeMounts:
- mountPath: /etc/kubernetes/pki/etcd
name: etcd-certs-0
readOnly: true
volumes:
- hostPath:
path: /opt/etcd-v3.3.10-linux-amd64
type: DirectoryOrCreate
name: etcd-certs-0

通过docker创建就可以使用,用的相同的配置,docker执行如下:

docker run -d -p 30003:8080 -v /opt/etcd-v3.3.10-linux-amd64/:/etc/kubernetes/pki/etcd/ -e CA_FILE=/etc/kubernetes/pki/etcd/ca.pem -e CERT_FILE=/etc/kubernetes/pki/etcd/etcd.pem -e KEY_FILE=/etc/kubernetes/pki/etcd/etcd-key.pem -e ENDPOINTS="https://etcd-leader-ip:2379" registry.cn-hangzhou.aliyuncs.com/ringtail/lucas:0.0.1

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.