Despliega una plataforma de Visual Studio Code en tu Kubernetes: ¡Code-Server para tu VPS!

Despliega Visual Studio Code en tu Kubernetes: IDE Cloud con code-server

¿Imaginas poder acceder a tu entorno de desarrollo Visual Studio Code desde cualquier lugar, usando solo tu navegador?
Hoy te enseñaré a desplegar code-server, la versión en navegador de VSCode, ¡directamente sobre tu clúster de Kubernetes en tu VPS!
Este es un proyecto ideal para quienes buscan aumentar su productividad y flexibilidad, sin preocuparse por perder configuraciones entre dispositivos.

¿Por qué desplegar Code-Server en Kubernetes?

  • Entorno de desarrollo consistente: trabaja siempre con la misma configuración y extensiones, estés donde estés.
  • Seguro y personalizable: controla el acceso tú mismo mediante autenticación y TLS.
  • Escalable: ideal tanto para equipos pequeños como para múltiples desarrolladores, con la infraestructura robusta de K8s.

Qué vamos a desplegar

Nuestro despliegue Kubernetes incluirá:

  • Un Deployment de code-server con persistencia de datos.
  • Un Service tipo LoadBalancer o NodePort para exponer el IDE.
  • Un Secret para la contraseña de acceso.
  • (Opcional, Alta seguridad) Un Ingress con TLS para acceso seguro por dominio.

Manos a la obra: Ficheros YAML completos

1. Secret para la contraseña de acceso

apiVersion: v1
kind: Secret
metadata:
  name: code-server-secret
type: Opaque
data:
  password: aG9sYXBhc3dvcmQ= # 'holapassword' en base64 (¡cámbiala por seguridad!)


Para otra contraseña: ejecuta echo -n 'tu_password_supersecreta' | base64 y sustituye el valor.

2. PersistentVolumeClaim (almacenamiento de usuario)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: code-server-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

3. Deployment principal de Code-Server

apiVersion: apps/v1
kind: Deployment
metadata:
  name: code-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: code-server
  template:
    metadata:
      labels:
        app: code-server
    spec:
      containers:
        - name: code-server
          image: codercom/code-server:4.89.1
          ports:
            - containerPort: 8080
          env:
            - name: PASSWORD
              valueFrom:
                secretKeyRef:
                  name: code-server-secret
                  key: password
          volumeMounts:
            - mountPath: /home/coder/project
              name: code-server-storage
      volumes:
        - name: code-server-storage
          persistentVolumeClaim:
            claimName: code-server-pvc

4. Servicio para exponer tu IDE

apiVersion: v1
kind: Service
metadata:
  name: code-server
spec:
  type: NodePort # Cambia a LoadBalancer si tu cloud lo admite
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30080
  selector:
    app: code-server


Accede a http://tu-vps:30080. Si usas un Ingress, sigue al siguiente paso.

5. (Opcional) Ingress con dominio y TLS

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: code-server
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
    - hosts:
        - code.vps-tu-dominio.com
      secretName: code-server-tls
  rules:
    - host: code.vps-tu-dominio.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: code-server
                port:
                  number: 80

¡A celebrar! VSCode en el navegador, listo para hackear

Tan pronto despliegues estos YAMLs, podrás acceder y trabajar en tu VPS desde cualquier lugar. Personaliza con tus plugins favoritos, temas y hasta integra Git directamente desde la interfaz. ¿Y lo mejor? ¡Toda tu configuración persiste!

Consejos extra & troubleshooting

  • Contraseña segura: cámbiala por defecto y no la publiques accidentalmente en tu repositorio.
  • Permisos en el PVC: si tienes problemas para guardar archivos, asegúrate de que las carpetas dentro del volumen tengan permisos para el usuario coder.
  • HTTPS recomendado: expón tu Ingress por HTTPS; code-server no expone por defecto un login multiusuario, TLS es esencial para evitar fugas de credenciales.
  • Escalabilidad: para proyectos multiusuario o más complejos, investiga Coder OSS o Gitpod, pero code-server es excelente para desarrolladores individuales o equipos pequeños.
  • Extensiones y sincronización: inicia sesión con tu cuenta de Microsoft/Github dentro de code-server para sincronizar configuraciones y plugins.

¿Tienes problemas? ¡Déjame un comentario! Mañana desplegaremos otra herramienta original en Kubernetes.
¡Sígueme para no perdértelo!

Avatar

Por Mid