All Projects → alibaba → Kt Connect

alibaba / Kt Connect

Licence: mit
Manage and Integration with your Kubernetes dev environment more efficient.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Kt Connect

Microservices On Cloud Kubernetes
Microservices demo application on cloud-hosted Kubernetes cluster
Stars: ✭ 213 (-57.31%)
Mutual labels:  mesh, istio
Wireguard Private Networking
Build your own multi server private network using wireguard and ansible
Stars: ✭ 124 (-75.15%)
Mutual labels:  mesh, vpn
netmaker
Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
Stars: ✭ 4,147 (+731.06%)
Mutual labels:  vpn, mesh
Simple Vpn
A simple VPN allowing mesh-like communication between nodes, over websockets
Stars: ✭ 201 (-59.72%)
Mutual labels:  mesh, vpn
edgevpn
⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
Stars: ✭ 223 (-55.31%)
Mutual labels:  vpn, mesh
merbridge
Use eBPF to speed up your Service Mesh like crossing an Einstein-Rosen Bridge.
Stars: ✭ 469 (-6.01%)
Mutual labels:  mesh, istio
ipvpn
[WIP] Easy-to-use decentralized secure overlay private network (for any device)
Stars: ✭ 24 (-95.19%)
Mutual labels:  vpn, mesh
Ctags
A maintained ctags implementation
Stars: ✭ 4,768 (+855.51%)
Mutual labels:  developer-tools
Reactivesearch
Search UI components for React and Vue: powered by appbase.io / Elasticsearch
Stars: ✭ 4,531 (+808.02%)
Mutual labels:  developer-tools
Magento2 Vagrant For Developers
Vagrant Box for Magento 2 Developers
Stars: ✭ 451 (-9.62%)
Mutual labels:  developer-tools
Algo
Set up a personal VPN in the cloud
Stars: ✭ 24,275 (+4764.73%)
Mutual labels:  vpn
Wirehub
🌍 Decentralized, peer-to-peer and secure overlay networks
Stars: ✭ 459 (-8.02%)
Mutual labels:  vpn
Wireguard Manager
Self-hosted Wireguard Installer / Manager for CentOS, Debian, Ubuntu, Arch, Fedora, Redhat, Raspbian
Stars: ✭ 478 (-4.21%)
Mutual labels:  vpn
Ergo
The management of multiple apps running over different ports made easy
Stars: ✭ 452 (-9.42%)
Mutual labels:  developer-tools
Dosvpn
🚀 极速、简单、开源的 VPN 访问外网学习先进科学技术的必备工具
Stars: ✭ 485 (-2.81%)
Mutual labels:  vpn
Laravel Kit
A desktop Laravel admin panel app
Stars: ✭ 440 (-11.82%)
Mutual labels:  developer-tools
Awesome Privacy
💡Limiting personal data leaks on the internet
Stars: ✭ 488 (-2.2%)
Mutual labels:  vpn
Reloadr
Hot code reloading tool for Python
Stars: ✭ 483 (-3.21%)
Mutual labels:  developer-tools
Actinium
A 3rd party V2Ray client for Android
Stars: ✭ 470 (-5.81%)
Mutual labels:  vpn
Ladder Ios
A solution for the IWE (Immersive Wallless Experience) on iOS platform.
Stars: ✭ 468 (-6.21%)
Mutual labels:  vpn

KT Connect

Go Build Status Go Report Card Test Coverage Maintainability Release License

Manage and integrate with your Kubernetes dev environment more efficiently.

Arch

Features

  • Connect: Directly Access a remote Kubernetes cluster. KT Connect use sshuttle as the vpn tool to access remote Kubernetes cluster networks.
  • Exchange: Developer can exchange the workload to redirect the requests to a local app.
  • Mesh: You can create a mesh version in local host and redirect to your local
  • Dashboard: A dashboard view can help you know how the environment is been used.

QuickStart

You can download and install the ktctl from Downloads And Install

Deploy a service in Kubernetes

$ kubectl run tomcat --image=registry.cn-hangzhou.aliyuncs.com/rdc-product/kt-connect-tomcat9:1.0 --expose --port=8080
service "tomcat" created
deployment.apps "tomcat" created

# Deployment info
$ kubectl get deployments -o wide --selector run=tomcat
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE       CONTAINERS   IMAGES                                                                 SELECTOR
tomcat    1         1         1            1           18s       tomcat       registry.cn-hangzhou.aliyuncs.com/rdc-product/kt-connect-tomcat9:1.0   run=tomcat

# Pods info
$ kubectl get pods -o wide --selector run=tomcat
NAME                      READY     STATUS    RESTARTS   AGE       IP             NODE
tomcat-54d87b848c-2mc9b   1/1       Running   0          1m        172.23.2.234   cn-beijing.192.168.0.8

# Service info
$ kubectl get svc tomcat
NAME      TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
tomcat    ClusterIP   172.21.6.39   <none>        8080/TCP   1m

Connect: Access Kubernetes resource from local

$ sudo ktctl connect --method=vpn
10:44PM INF Connect Start At 80073
10:44PM INF Client address 192.168.3.120
10:44PM INF Deploying shadow deployment kt-connect-daemon-rarba in namespace default

10:44PM INF Shadow Pod status is Pending
10:44PM INF Shadow Pod status is Running
10:44PM INF Shadow is ready.
10:44PM INF Success deploy proxy deployment kt-connect-daemon-rarba in namespace default

Forwarding from 127.0.0.1:2222 -> 22
Forwarding from [::1]:2222 -> 22
Handling connection for 2222
Warning: Permanently added '[127.0.0.1]:2222' (ECDSA) to the list of known hosts.
client: Connected.
10:44PM INF KT proxy start successful

Access PodIP:

curl http://172.23.2.234:8080 #Access PodIP from local
kt-connect demo from tomcat9

Access ClusterIP:

$ curl http://172.21.6.39:8080 #Access ClusterIP
kt-connect demo from tomcat9

Access Server internal DNS address

$ curl http://tomcat:8080 #Access Server internal DNS address
kt-connect demo from tomcat9

Exchange: Access local from cluster

Create Tomcat 8 in local and expose 8080 port

docker run -itd -p 8080:8080 tomcat:8
$ sudo ktctl exchange tomcat --expose 8080
2019/06/19 11:19:10  * tomcat (0 replicas)
2019/06/19 11:19:10 Scale deployment tomcat to zero
2019/06/19 11:19:10 Deploying proxy deployment tomcat-kt-oxpjf in namespace default
2019/06/19 11:19:10 Pod status is Pending
2019/06/19 11:19:12 Pod status is Running
2019/06/19 11:19:12 Success deploy proxy deployment tomcat-kt-oxpjf in namespace default
SSH Remote port-forward for POD starting
2019/06/19 11:19:14 ssh remote port-forward start at pid: 3567
tips:
if your remote port diffrent local port, you can user ${remotePort}:{localPort} set expose parameter

Access the local tomcat by internal service DNS address:

Note: if ktctl connect not running, you can only access from cluster

$ curl http://tomcat:8080 | grep '<h1>'
<h1>Apache Tomcat/8.5.37</h1> #

Mesh: Build large test environemnt with ServiceMesh

You can know more from Mesh Best Practices

The biggest difference from mesh and exchange is exchange will scale the origin workload replicas down to zero, and mesh will keep it and create a pod instance with an random version. After this, user can modify the Istio route rule to let the specific request redirect to your local, and the environment can keep working as normal:

$ sudo ktctl mesh tomcat --expose 8080
2019/06/19 22:10:23 'KT Connect' not runing, you can only access local app from cluster
2019/06/19 22:10:24 Deploying proxy deployment tomcat-kt-ybocr in namespace default
2019/06/19 22:10:24 Pod status is Pending
2019/06/19 22:10:26 Pod status is Pending
2019/06/19 22:10:28 Pod status is Running
2019/06/19 22:10:28 Success deploy proxy deployment tomcat-kt-ybocr in namespace default
2019/06/19 22:10:28 -----------------------------------------------------------
2019/06/19 22:10:28 |    Mesh Version 'ybocr' You can update Istio rule       |
2019/06/19 22:10:28 -----------------------------------------------------------
2019/06/19 22:10:30 exchange port forward to local start at pid: 53173
SSH Remote port-forward POD 172.16.0.217 22 to 127.0.0.1:2217 starting
2019/06/19 22:10:30 ssh remote port-forward exited
2019/06/19 22:10:32 ssh remote port-forward start at pid: 53174

Dashboard

The dashboard can help your know how your dev environment is been used.

Dashboard

You can install KT Connect Dashboard by following Install Dashboard

Ask For Help

Please contact us with DingTalk(钉钉):

Release Notes

0.0.12

Release At 2020-03-08

  • add run command to support expose local service
  • add mesh/exchange port mapping usage
  • fixed, random local ssh port cal issue

0.0.11

Release At 2020-02-27

  • fixed command not exit issue.
  • add check command to help check local denpendencies
  • add dashboard command to to install and open dashboard in local
  • add support to access service with .

0.0.10

Release At 2020-02-02

  • Options adaptor windows system
  • Add --dump2hosts options to support socks5 use

0.0.9

Release At 2020-01-16

  • Support Service Name as dns address
  • Make sure shadow is clean up after command exit

0.0.8

Release At 2019-12-13

  • Add windows native support
  • Add idea support

0.0.7

Release At 2019-12-05

  • Add oidc plugin to support TKE
  • Add socks5 method to support WSL
  • Fixed issue when node.Spec.PodCIRD dynamic cal CIRD

0.0.6

Release At 2019-10-01

  • Fixed clusterIP cidr missing.
  • Rename docker images address.

0.0.5

Release At 2019-10-09

  • Add dashboard and api server source code

0.0.4

Release At 2019-06-26

  • Support KT Connect Dashboard

0.0.3

Release At 2019-06-19

  • Add mesh command to support istio network rule

0.0.2

Release At 2019-06-19

  • Fixed issue if istio inject is enable in namespace, and the request can't redirect to local
  • Support exchange run standalone.

0.0.1

Release At 2019-06-18

  • split command to connect and exchange.
  • support mutil exchange.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].