在Ubuntu上实现Kubernetes自动化运维,可结合工具与脚本,核心步骤如下:
安装Kubernetes组件
使用kubeadm
快速部署集群(需提前安装Docker):
sudo apt-get update && sudo apt-get install -y kubeadm kubelet kubectl
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 # 初始化集群
mkdir -p $HOME/.kube && sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config # 配置kubectl
加入节点:在其他Ubuntu节点执行 kubeadm join <master-ip>:6443 --token <token>
。
配置网络插件
安装Calico或Flannel实现Pod网络通信,例如Calico:
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
使用YAML文件定义资源
通过kubectl apply -f
命令批量部署应用,如Deployment、Service:
# deployment.yaml 示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
执行部署:kubectl apply -f deployment.yaml
。
集成CI/CD工具
kubectl
命令或Python脚本,实现代码提交后自动构建、测试、部署。helm install nginx ./nginx-chart --set replicaCount=3
监控集群状态
# 部署Prometheus Operator
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/master/bundle.yaml
自动化扩缩容
kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=2 --max=5
配置探针实现自愈
在Pod定义中添加livenessProbe
和readinessProbe
,检测应用健康状态,异常时自动重启。
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
备份与恢复
使用Velero定期备份集群数据,支持跨集群恢复:
kubectl apply -f https://github.com/vmware-tanzu/velero/releases/latest/download/release-velero-v1.13.0-linux-amd64.tar.gz
velero backup create my-backup --include-namespaces default
# 创建ServiceAccount
kubectl create serviceaccount automation-sa -n default
# 绑定角色(需提前创建Role)
kubectl create rolebinding automation-rb --role=pod-manager --serviceaccount=default:automation-sa
在脚本中使用kubectl --as=system:serviceaccount:default:automation-sa
执行操作。通过以上步骤,可利用Ubuntu系统结合Kubernetes原生工具及开源组件,实现从部署、监控到故障恢复的全流程自动化运维。