--- sidebar_position: 5 --- # Frequently Asked Questions Common questions about deploying and managing Kubernetes clusters on Mycelium Cloud. ## General ### What is Mycelium Cloud? Mycelium Cloud is a platform for deploying and managing Kubernetes clusters on the decentralized ThreeFold Grid infrastructure. It provides K3s clusters with Mycelium peer-to-peer networking, making it easy to run containerized applications on distributed, cost-effective infrastructure. ### What makes Mycelium Cloud different? - **Decentralized Infrastructure**: Runs on ThreeFold Grid's distributed network - **IPv6 Networking**: Built-in Mycelium peer-to-peer networking - **Cost Effective**: Competitive pricing on decentralized infrastructure - **No Vendor Lock-in**: Standard Kubernetes (K3s) - works with all K8s tools - **Global Distribution**: Deploy across worldwide node locations ### Is it suitable for production workloads? Yes! Mycelium Cloud supports production workloads with: - High availability cluster configurations (multi-master) - Persistent storage options - Monitoring and logging capabilities - Standard Kubernetes security features ## Getting Started ### How do I create an account? 1. Visit [Mycelium Cloud](https://myceliumcloud.tf) 2. Fill in your registration details 3. Verify your email address 4. Add credits and SSH keys from your dashboard See the **[Getting Started Guide](/getstarted/mycelium-cloud/getting-started)** for detailed steps. ### What do I need to get started? - **Mycelium installed** - For network access ([Install guide](/getstarted/mycelium-network/install)) - **kubectl installed** - For cluster management ([Install kubectl](https://kubernetes.io/docs/tasks/tools/)) - **SSH key pair** - For node access - **Account credits** - To fund your deployments ### What Kubernetes version is supported? Mycelium Cloud uses **K3s v1.26+**, which provides: - Full Kubernetes API compatibility - Lightweight resource usage - High availability features - Dual-stack networking (IPv4/IPv6) ## Cluster Management ### How do I access my cluster? Two methods: **1. kubectl (Recommended):** ```bash # Download kubeconfig from dashboard export KUBECONFIG=/path/to/mycluster-config.yaml kubectl get nodes ``` **2. SSH:** ```bash # Start Mycelium, then SSH to node IPs ssh root@ ``` See **[Getting Started](/getstarted/mycelium-cloud/getting-started#step-4-access-your-cluster)** for details. ### Can I scale my cluster after deployment? Yes! You can: - Add or remove worker nodes through the dashboard - Scale applications independently using kubectl - Modify cluster configuration ```bash # Scale deployment kubectl scale deployment myapp --replicas=5 ``` ### What happens if a node fails? - **Worker Node Failure**: Kubernetes automatically reschedules pods to healthy nodes - **Master Node Failure**: In HA setups (3+ masters), other masters take over - **Self-Healing**: Pods are automatically restarted if they crash ## Networking ### How do I expose applications to the internet? Options include: **1. NodePort Services:** ```yaml type: NodePort ``` **2. Port Forwarding (Development):** ```bash kubectl port-forward service/myapp 8080:80 ``` **3. Ingress Controllers:** Set up an ingress controller for HTTP/HTTPS routing with custom domains. ### Do I need public IP addresses? No! Mycelium Cloud uses **Mycelium networking**: - Each node gets a unique Mycelium IPv6 address - Access nodes and services via Mycelium network - All traffic encrypted end-to-end - No need for public IPs or complex firewall configurations ## Troubleshooting ### My cluster deployment failed. What should I do? 1. **Check Logs**: Review deployment logs in the dashboard 2. **Verify Credits**: Ensure sufficient account balance 3. **Node Availability**: Confirm selected nodes are available 4. **Configuration**: Validate cluster configuration settings 5. **Contact Support**: If issues persist, reach out via Telegram or GitHub ### I can't connect with kubectl. How do I fix this? ```bash # 1. Verify kubeconfig is set echo $KUBECONFIG # 2. Check Mycelium is running # (Open Mycelium app or run: sudo mycelium --peers ...) # 3. Test cluster connectivity kubectl cluster-info # 4. Verify cluster is running in dashboard ``` Common issues: - Mycelium not running on your machine - Wrong kubeconfig file path - Cluster stopped in dashboard - Network firewall blocking connections ### My pods are not starting. What's wrong? ```bash # Check pod status kubectl get pods # Describe pod for events kubectl describe pod # Check logs kubectl logs # Check node resources kubectl top nodes ``` Common causes: - **Resource Limits**: Insufficient CPU/memory on nodes - **Image Issues**: Cannot pull container images - **Configuration**: Invalid pod specifications - **Storage**: Persistent volume issues ### How do I check cluster health? ```bash # Check node status kubectl get nodes # Check system pods kubectl get pods -n kube-system # View events kubectl get events --sort-by=.metadata.creationTimestamp # Check resource usage kubectl top nodes kubectl top pods ``` ## Storage & Data ### How do I persist data? Use **PersistentVolumeClaims** (PVCs): ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` See **[Tutorial](/getstarted/mycelium-cloud/tutorial#tutorial-3-stateful-application-with-persistent-storage)** for a complete example. ### How do I backup my cluster? Backup strategies: - **Application Data**: Use PVC snapshots or backup tools - **Configurations**: Version control your YAML manifests in Git - **etcd Snapshots**: Cluster state backups (advanced) ## Security ### How secure is Mycelium Cloud? Security features: - **Encrypted Communication**: All traffic encrypted via Mycelium network - **Network Isolation**: Secure pod-to-pod communication - **RBAC**: Kubernetes role-based access control - **SSH Key Authentication**: Secure node access - **No Public IPs**: Reduced attack surface ### How do I manage secrets? Use Kubernetes Secrets: ```bash # Create secret kubectl create secret generic db-password --from-literal=password=mypassword # Use in pod env: - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-password key: password ``` See **[Kubernetes Basics](/getstarted/mycelium-cloud/kubernetes-basics#secrets)** for more details. ## Getting Help ### Where can I get more information and support? - **Documentation**: [Getting Started](/getstarted/mycelium-cloud/getting-started), [Tutorial](/getstarted/mycelium-cloud/tutorial) - **Community**: [ThreeFold Telegram](https://t.me/threefold/1) ### How do I report a bug? 1. Check existing [GitHub Issues](https://github.com/codescalers/kubecloud/issues) 2. Create a new issue with: - Cluster configuration - Error messages and logs - Steps to reproduce - Expected vs actual behavior --- ## Still Have Questions? Check out these resources: - **[Getting Started Guide](/getstarted/mycelium-cloud/getting-started)** - Step-by-step cluster deployment - **[Tutorial](/getstarted/mycelium-cloud/tutorial)** - Practical deployment examples - **[Kubernetes Basics](/getstarted/mycelium-cloud/kubernetes-basics)** - Essential K8s concepts - **[Kubernetes Documentation](https://kubernetes.io/docs/)** - Official K8s docs