feat: Add Kubernetes basics guide and FAQ for Mycelium Cloud documentation
This commit is contained in:
276
docs/mycelium-cloud/faq.md
Normal file
276
docs/mycelium-cloud/faq.md
Normal file
@@ -0,0 +1,276 @@
|
||||
---
|
||||
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@<mycelium-ip>
|
||||
```
|
||||
|
||||
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 <pod-name>
|
||||
|
||||
# Check logs
|
||||
kubectl logs <pod-name>
|
||||
|
||||
# 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
|
Reference in New Issue
Block a user