Skip to content

Instantly share code, notes, and snippets.

@jizusun
Last active January 20, 2024 09:28
Show Gist options
  • Save jizusun/162ab69594cb0a0778434aae58008596 to your computer and use it in GitHub Desktop.
Save jizusun/162ab69594cb0a0778434aae58008596 to your computer and use it in GitHub Desktop.
Shadowsocks On Docker/Kubernetes
export password=foobar
export method=chacha20-ietf-poly1305
export port=9301
docker run -e PASSWORD=${password} -e METHOD=${method} -p${port}:8388 -p${port}:8388/udp -d shadowsocks/shadowsocks-libev
export host=$(curl -s ipinfo.io/json | grep \"ip\" | awk -F'"' '{ print $4 }')
echo $host:$port
export password=foobar
export method=chacha20-ietf-poly1305
export port=9301
cat ss-k8s.yml | envsubst | kubectl apply -f -
export host=$(kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}')
export port=$(kubectl get svc shadowsocks-svc -o jsonpath='{$.spec.ports[*].nodePort}')
echo $host:$port
apiVersion: apps/v1
kind: Deployment
metadata:
name: shadowsocks-deployment
labels:
app: shadowsocks
spec:
replicas: 1
selector:
matchLabels:
app: shadowsocks
template:
metadata:
labels:
app: shadowsocks
spec:
containers:
- name: shadowsocks-libev
image: shadowsocks/shadowsocks-libev
env:
- name: METHOD
value: ${method}
- name: PASSWORD
value: ${password}
ports:
- containerPort: 8388
---
apiVersion: v1
kind: Service
metadata:
name: shadowsocks-svc
labels:
app: shadowsocks
spec:
type: NodePort
ports:
- port: 8388
protocol: TCP
selector:
app: shadowsocks
---
apiVersion: v1
kind: Service
metadata:
name: shadowsocks-lb
labels:
app: shadowsocks
spec:
selector:
app: shadowsocks
ports:
- port: ${port}
targetPort: 8388
type: LoadBalancer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment