Upcloud Managed Kubernetes: Operational Reality Check

Upcloud's managed Kubernetes offers solid performance once past initial networking hurdles.

JR

2 minute read

Upcloud’s managed Kubernetes offers solid performance once past initial networking hurdles, but expect hands-on troubleshooting and limited upgrade flexibility.

What is Upcloud Managed Kubernetes?

Upcloud, a subsidiary of Updog, provides a managed Kubernetes service focused on European data centers. It abstracts control plane management but requires hands-on node and network configuration.

Operational Reality: Setup Pain, Post-Resolution Stability

Initial Setup Challenges:

  • Internal networking misconfigurations (e.g., CNI plugin conflicts, subnet overlaps) caused multi-day outages during cluster creation.
  • Documentation gaps required trial-and-error for VPC peering and DNS integration.
  • Support response times varied: 24–48 hours for critical issues.

Post-Resolution Stability:

  • Once networking stabilized, clusters ran with <1% downtime over 12 months.
  • Resource pricing competitive with OVH/Exoscale, but no auto-scaling for system components.

Actionable Workflow: Setup and Troubleshooting Steps

  1. Pre-Setup:

    • Define subnets and VPC peering before cluster creation.
    • Validate DNS delegation (e.g., coredns configmaps) pre-deployment.
  2. Cluster Creation:

    • Use CLI for reproducibility:
      upcloud cli: cluster create --name prod-eu --region fi-abc --node-count 3  
      
    • Monitor node readiness:
      kubectl get nodes --watch  
      
  3. Post-Creation Checks:

    • Verify CNI plugin status:
      kubectl -n kube-system get pods -l k8s-app=coredns  
      
    • Test external connectivity:
      curl -v http://<external-service-ip>  
      
  4. Troubleshooting Networking:

    • Check for IP conflicts in Upcloud’s web UI under “Networks”.
    • Inspect kube-router logs for failed ARP entries.

Policy Example: Maintenance Window Enforcement

Policy:

  • All control plane upgrades occur during EU business hours (09:00–17:00 CET).
  • Node OS updates require 72-hour advance notice to Upcloud support.

Implementation:

  • Use kubectl drain before maintenance:
    kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data  
    

Tooling and Integration

  • CLI: Primary interface for cluster lifecycle management.
  • Monitoring: Prometheus + Grafana with Upcloud’s built-in metrics endpoint.
  • CI/CD: Helm charts for deployments; ArgoCD for sync.
  • Limitation: No native integration for Velero backups—requires manual config.

Tradeoffs and Caveats

  • Pros:
    • Strong data sovereignty compliance (EU-only data centers).
    • Predictable pricing with no hidden egress fees.
  • Cons:
    • No automated node OS upgrades—manual intervention required.
    • Kube version upgrades lag upstream by ~3 months.

Troubleshooting Common Failures

  1. Node Not Ready:

    • Check Upcloud’s hardware status in the console.
    • Reboot node via CLI:
      upcloud server reboot <server-id>  
      
  2. DNS Resolution Failures:

    • Validate coredns deployment has correct forward zones.
    • Test with nslookup inside a debug pod:
      nslookup kube-dns.kube-system.svc.cluster.local  
      
  3. Upgrade Failures:

    • Pre-upgrade: Drain nodes and backup etcd.
    • Post-upgrade: Monitor API server latency with Prometheus.

Final Note: Upcloud works for stable, low-touch workloads but demands operational discipline for setup and maintenance. For faster upgrades or auto-scaling, consider self-managed on their IaaS.

Source thread: Experience with Upcloud managed Kubernetes?

comments powered by Disqus