首页主机资讯Ubuntu环境下Kubernetes如何管理容器

Ubuntu环境下Kubernetes如何管理容器

时间2025-10-21 18:15:03发布访客分类主机资讯浏览634
导读:Ubuntu环境下Kubernetes容器管理指南 一、环境准备:安装基础组件 在Ubuntu上使用Kubernetes管理容器前,需完成以下基础配置: 系统预处理:更新系统并关闭交换分区(Kubernetes要求),开启IPv4转发和内...

Ubuntu环境下Kubernetes容器管理指南

一、环境准备:安装基础组件

在Ubuntu上使用Kubernetes管理容器前,需完成以下基础配置:

  1. 系统预处理:更新系统并关闭交换分区(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
    
  2. 安装容器运行时:Kubernetes依赖Docker作为容器运行时,通过以下命令安装:
    sudo apt install -y docker.io
    sudo systemctl enable --now docker
    
  3. 安装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集群

  1. 初始化Master节点:在Master节点执行kubeadm init命令,指定Pod网络CIDR(如10.244.0.0/16),生成加入集群的命令:
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    
    执行后,复制输出的kubeadm join命令备用。
  2. 配置kubectl:将集群配置文件复制到用户目录,设置权限:
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  3. 部署网络插件:安装Calico(或其他插件,如Flannel)实现Pod间通信:
    kubectl apply -f https://docs.projectcalico.org/v3.26/manifests/calico.yaml
    
  4. 添加Worker节点:在Worker节点执行Master节点输出的kubeadm join命令,完成节点加入:
    sudo kubeadm join <
        Master-IP>
        :6443 --token <
        TOKEN>
         --discovery-token-ca-cert-hash <
        HASH>
        
    

三、容器生命周期管理

  1. 部署应用:通过Deployment创建Pod副本集(以Nginx为例),指定镜像和副本数:
    kubectl create deployment nginx --image=nginx --replicas=3
    
  2. 暴露服务:通过Service将Pod暴露为可访问端点(如NodePort类型,端口80):
    kubectl expose deployment nginx --port=80 --type=NodePort
    
  3. 扩缩容:手动调整副本数(如扩至5个)或启用自动扩缩容(HPA):
    kubectl scale deployment nginx --replicas=5
    # 启用HPA(需提前安装Metrics Server)
    kubectl autoscale deployment nginx --cpu-percent=50 --min=2 --max=10
    
  4. 删除资源:删除不再需要的Deployment或Service:
    kubectl delete deployment nginx
    kubectl delete service nginx
    

四、常用管理命令

  1. 查看集群状态
    kubectl get nodes  # 查看节点状态(需为Ready)
    kubectl get pods -o wide  # 查看Pod状态及所在节点
    kubectl get services  # 查看Service状态
    
  2. 查看资源详情
    kubectl describe pod <
        Pod名称>
          # 查看Pod详情(如事件、状态)
    kubectl logs <
        Pod名称>
          # 查看Pod日志
    kubectl exec -it <
        Pod名称>
         -- /bin/bash  # 进入Pod容器(交互模式)
    
  3. 删除资源
    kubectl delete pod <
        Pod名称>
          # 删除指定Pod(若属于Deployment,会自动重建)
    kubectl delete deployment <
        Deployment名称>
          # 删除Deployment及关联Pod
    

五、容器生命周期高级管理

  1. 保持容器运行:通过livenessProbe(活性探针)检测容器健康状态,失败时自动重启;使用restartPolicy(重启策略)控制容器失败后的行为(如AlwaysOnFailure):
    # 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
    
  2. 生命周期钩子:通过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"]
    

六、监控与维护

  1. 监控集群状态:使用kubectl top命令查看节点和Pod的资源使用情况(需安装Metrics Server):
    kubectl top nodes
    kubectl top pods
    
  2. 查看集群信息:了解集群基本信息(如Kubernetes版本、云提供商):
    kubectl cluster-info
    
  3. 备份与恢复:定期备份etcd(Kubernetes数据存储),可使用etcdctl工具或第三方工具(如Velero)。

通过以上步骤,可在Ubuntu环境下使用Kubernetes完成容器的部署、管理、扩缩容及生命周期维护,实现容器化应用的高效编排。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu环境下Kubernetes如何管理容器
本文地址: https://pptw.com/jishu/731384.html
debian进程如何提高运行效率 Kubernetes在Ubuntu上的日志如何查看

游客 回复需填写必要信息