Subsections of DEV
Devpod
Preliminary
1. Get provider config
# just copy ~/.kube/configfor example, the original config
apiVersion: v1
clusters:
- cluster:
certificate-authority: <$file_path>
extensions:
- extension:
provider: minikube.sigs.k8s.io
version: v1.33.0
name: cluster_info
server: https://<$minikube_ip>:8443
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
provider: minikube.sigs.k8s.io
version: v1.33.0
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: <$file_path>
client-key: <$file_path>you need to rename clusters.cluster.certificate-authority, clusters.cluster.server, users.user.client-certificate, users.user.client-key.
clusters.cluster.certificate-authority -> clusters.cluster.certificate-authority-data
clusters.cluster.server -> ip set to `localhost`
users.user.client-certificate -> users.user.client-certificate-data
users.user.client-key -> users.user.client-key-datathe data you paste after each key should be base64
cat <$file_path> | base64then, modified config file should be look like this:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: xxxxxxxxxxxxxx
extensions:
- extension:
provider: minikube.sigs.k8s.io
version: v1.33.0
name: cluster_info
server: https://127.0.0.1:8443
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
provider: minikube.sigs.k8s.io
version: v1.33.0
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate-data: xxxxxxxxxxxx
client-key-data: xxxxxxxxxxxxxxxxthen we should forward minikube port in your own pc
#where you host minikube
MACHINE_IP_ADDRESS=10.200.60.102
USER=ayay
MINIKUBE_IP_ADDRESS=$(ssh -o 'UserKnownHostsFile /dev/null' $USER@$MACHINE_IP_ADDRESS '$HOME/bin/minikube ip')
ssh -o 'UserKnownHostsFile /dev/null' $USER@$MACHINE_IP_ADDRESS -L "*:8443:$MINIKUBE_IP_ADDRESS:8443" -N -f2. Create workspace
- get git repo link
- choose appropriate provider
- choose ide type and version
- and go!
Useful Command
Install Kubectl
for more information, you can check 🔗link to install kubectl
How to use it in devpod
Everything works fine.
when you in pod, and using kubectl you should change
clusters.cluster.serverin~/.kube/configto https://<$minikube_ip>:8443exec into devpod
kubectl -n devpod exec -it <$resource_id> -c devpod -- bin/bash- add DNS item
10.aaa.bbb.ccc gitee.zhejianglab.com- shutdown ssh tunnel
# check if port 8443 is already open netstat -aon|findstr "8443" # find PID ps | grep ssh # kill the process taskkill /PID <$PID> /T /F# check if port 8443 is already open netstat -aon|findstr "8443" # find PID ps | grep ssh # kill the process kill -9 <$PID>
Dev Conatiner
write .devcontainer.json
JumpServer
Local Jumpserver virtual node (develop/k3s)
________ _______ ________
╱ ╲ ╱ ╲╲ ╱ ╲
╱ ╱ ------ ╱ ╱╱ -------- ╱ ╱
╱ ╱ ╱ ╱ ╱ ╱
╲________╱ ╲________╱ ╲________╱
IP: 10.A.B.C IP: jumpserver.ay.dev IP: 192.168.100.xxx Modify SSH Config
30022has ssh service at jumpserver
cat .ssh/config
Host jumpserver
HostName jumpserver.ay.dev
Port 30022
User ay
IdentityFile ~/.ssh/id_rsa
Host virtual
HostName 192.168.100.xxx
Port 22
User ay
ProxyJump jumpserver
IdentityFile ~/.ssh/id_rsaAnd then you can directly connect to the virtual node
Forward port in virtual node
30022has ssh service at jumpserver
32524is a service which you wanna forward
ssh -o 'UserKnownHostsFile /dev/null' -o 'ServerAliveInterval=60' -L 32524:192.168.100.xxx:32524 -p 30022 ay@jumpserver.ay.dev