阅读量:3
Ubuntu环境下Kubernetes容器管理指南
一、环境准备:安装基础组件
在Ubuntu上使用Kubernetes管理容器前,需完成以下基础配置:
- 系统预处理:更新系统并关闭交换分区(Kubernetes要求),开启IPv4转发和内核优化,确保时间同步。
sudo apt update && sudo apt upgrade -y sudo swapoff -a sudo sed -i '/ swap / s/1/g' /etc/fstab echo "net.bridge.bridge-nf-call-iptables = 1\nnet.bridge.bridge-nf-call-ip6tables = 1\nnet.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/k8s.conf sudo sysctl --system sudo apt install -y ntpdate && sudo ntpdate ntp.aliyun.com - 安装容器运行时:Kubernetes依赖Docker作为容器运行时,通过以下命令安装:
sudo apt install -y docker.io sudo systemctl enable --now docker - 安装Kubernetes核心组件:安装
kubelet(节点管理)、kubeadm(集群初始化)、kubectl(命令行工具),并锁定版本避免自动升级:sudo apt install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
二、初始化Kubernetes集群
- 初始化Master节点:在Master节点执行
kubeadm init命令,指定Pod网络CIDR(如10.244.0.0/16),生成加入集群的命令:
执行后,复制输出的sudo kubeadm init --pod-network-cidr=10.244.0.0/16kubeadm join命令备用。 - 配置kubectl:将集群配置文件复制到用户目录,设置权限:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config - 部署网络插件:安装Calico(或其他插件,如Flannel)实现Pod间通信:
kubectl apply -f https://docs.projectcalico.org/v3.26/manifests/calico.yaml - 添加Worker节点:在Worker节点执行Master节点输出的
kubeadm join命令,完成节点加入:sudo kubeadm join:6443 --token --discovery-token-ca-cert-hash
三、容器生命周期管理
- 部署应用:通过
Deployment创建Pod副本集(以Nginx为例),指定镜像和副本数:kubectl create deployment nginx --image=nginx --replicas=3 - 暴露服务:通过
Service将Pod暴露为可访问端点(如NodePort类型,端口80):kubectl expose deployment nginx --port=80 --type=NodePort - 扩缩容:手动调整副本数(如扩至5个)或启用自动扩缩容(HPA):
kubectl scale deployment nginx --replicas=5 # 启用HPA(需提前安装Metrics Server) kubectl autoscale deployment nginx --cpu-percent=50 --min=2 --max=10 - 删除资源:删除不再需要的Deployment或Service:
kubectl delete deployment nginx kubectl delete service nginx
四、常用管理命令
- 查看集群状态:
kubectl get nodes # 查看节点状态(需为Ready) kubectl get pods -o wide # 查看Pod状态及所在节点 kubectl get services # 查看Service状态 - 查看资源详情:
kubectl describe pod# 查看Pod详情(如事件、状态) kubectl logs # 查看Pod日志 kubectl exec -it -- /bin/bash # 进入Pod容器(交互模式) - 删除资源:
kubectl delete pod# 删除指定Pod(若属于Deployment,会自动重建) kubectl delete deployment # 删除Deployment及关联Pod
五、容器生命周期高级管理
- 保持容器运行:通过
livenessProbe(活性探针)检测容器健康状态,失败时自动重启;使用restartPolicy(重启策略)控制容器失败后的行为(如Always、OnFailure):# Deployment示例(包含探针) apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 template: spec: containers: - name: nginx image: nginx livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 15 periodSeconds: 10 restartPolicy: Always - 生命周期钩子:通过
PostStart(容器启动后执行,如初始化脚本)和PreStop(容器终止前执行,如优雅关闭)钩子实现自定义操作:# Deployment示例(包含生命周期钩子) apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 template: spec: containers: - name: nginx image: nginx lifecycle: postStart: exec: command: ["/bin/sh", "-c", "echo 'Container started' > /usr/share/nginx/html/welcome.txt"] preStop: exec: command: ["/usr/sbin/nginx", "-s", "quit"]
六、监控与维护
- 监控集群状态:使用
kubectl top命令查看节点和Pod的资源使用情况(需安装Metrics Server):kubectl top nodes kubectl top pods - 查看集群信息:了解集群基本信息(如Kubernetes版本、云提供商):
kubectl cluster-info - 备份与恢复:定期备份etcd(Kubernetes数据存储),可使用
etcdctl工具或第三方工具(如Velero)。
通过以上步骤,可在Ubuntu环境下使用Kubernetes完成容器的部署、管理、扩缩容及生命周期维护,实现容器化应用的高效编排。
以上就是关于“Ubuntu环境下Kubernetes如何管理容器”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm