k8s入门:从安装到实际应用

Kubernetes (K8s) 入门指南:从安装到实际应用

Kubernetes 是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。它能帮助你管理多个容器化应用程序,并确保它们在不同环境下的一致性和可用性。本文将介绍如何在本地环境安装 Kubernetes 并进行简单的应用部署。

一、安装 Kubernetes

Kubernetes 的安装可以通过多种方式完成,以下是几种常见的安装方法:

1. 使用 Minikube 安装 Kubernetes

Minikube 是一个工具,可以在本地运行单节点 Kubernetes 集群,适合开发和测试使用。

步骤:

  1. 安装 Minikube:

    • 在 Linux 上:

      bash 复制代码
      curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
      sudo install minikube /usr/local/bin/
    • 在 macOS 上:

      bash 复制代码
      brew install minikube
    • 在 Windows 上:

      下载 Minikube 并将其添加到系统路径。

  2. 安装 kubectl:

    kubectl 是 Kubernetes 的命令行工具,用于管理 Kubernetes 集群。

    • 在 Linux 上:

      bash 复制代码
      curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
      chmod +x ./kubectl
      sudo mv ./kubectl /usr/local/bin/kubectl
    • 在 macOS 上:

      bash 复制代码
      brew install kubectl
    • 在 Windows 上:

      下载 kubectl 并将其添加到系统路径。

  3. 启动 Minikube:

bash 复制代码
 #安装相关依赖
 yum install -y conntrack git wget golang
 VERSION="v1.30.0"
 wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
 tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
 git clone https://github.com/Mirantis/cri-dockerd.git
 cd cri-dockerd
 mkdir bin
 go get && go build -o bin/cri-dockerd
 mv bin/cri-dockerd /usr/local/bin/
 wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service -O /etc/systemd/system/cri-docker.service
 wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.socket -O /etc/systemd/system/cri-docker.socket
 sudo systemctl daemon-reload
 sudo systemctl enable cri-docker.service
 sudo systemctl enable cri-docker.socket
 sudo systemctl start cri-docker.service
 sudo systemctl start cri-docker.socket
bash 复制代码
#启动minikube
minikube start
  1. 验证安装:

    bash 复制代码
    kubectl get nodes

    如果安装成功,你应该会看到一个名为 minikube 的节点。

2. 使用 Kind 安装 Kubernetes

Kind (Kubernetes IN Docker) 是另一个适合本地开发的 Kubernetes 集群工具,通过 Docker 容器运行 Kubernetes 集群。

步骤:

  1. 安装 Kind:

    • 在 Linux 和 macOS 上:

      bash 复制代码
      curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
      chmod +x ./kind
      sudo mv ./kind /usr/local/bin/kind
    • 在 Windows 上:

      下载 Kind 并将其添加到系统路径。

  2. 创建 Kubernetes 集群:

    bash 复制代码
    kind create cluster
  3. 验证安装:

    bash 复制代码
    kubectl cluster-info --context kind-kind
二、部署应用到 Kubernetes

一旦 Kubernetes 集群启动并运行,你可以开始部署应用程序。以下是一个简单的 Nginx 应用部署示例:

  1. 创建 Nginx Deployment:

    Deployment 用于声明应用的期望状态,Kubernetes 将确保实际状态匹配声明的期望状态。

    bash 复制代码
    kubectl create deployment nginx --image=nginx
  2. 暴露 Nginx 服务:

    Service 用于将 Deployment 暴露为一个网络服务。

    bash 复制代码
    kubectl expose deployment nginx --port=80 --type=NodePort
  3. 查看服务信息:

    bash 复制代码
    kubectl get services

    你将看到类似以下的输出,其中 PORT(S) 显示了服务暴露的端口:

    复制代码
    NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
    nginx        NodePort    10.96.0.1      <none>        80:PORT/TCP    1m
  4. 访问 Nginx 应用:

    在浏览器中访问 http://<Node_IP>:<PORT>,其中 <Node_IP> 是集群节点的 IP 地址,<PORT> 是上一步中显示的端口。

三、管理 Kubernetes 应用

Kubernetes 提供了丰富的功能来管理和扩展你的应用程序:

  1. 扩展 Deployment:

    可以使用以下命令扩展 Nginx 部署的副本数:

    bash 复制代码
    kubectl scale deployment nginx --replicas=3
  2. 更新 Deployment:

    可以使用以下命令滚动更新 Nginx 部署:

    bash 复制代码
    kubectl set image deployment/nginx nginx=nginx:latest
  3. 查看 Deployment 状态:

    使用以下命令查看 Deployment 的状态:

    bash 复制代码
    kubectl get deployments
  4. 查看 Pod 日志:

    使用以下命令查看 Pod 的日志:

    bash 复制代码
    kubectl logs <pod_name>
四、常见的 Kubernetes 资源类型
  • Pod:Kubernetes 中最小的部署单元,包含一个或多个容器。
  • Service:用于定义 Pod 的网络访问策略。
  • Deployment:用于声明应用的期望状态,支持滚动更新和回滚。
  • ConfigMap 和 Secret:用于管理应用配置和敏感信息。
  • PersistentVolume (PV) 和 PersistentVolumeClaim (PVC):用于管理持久存储。

总结

本文介绍了如何在本地安装 Kubernetes 并部署一个简单的 Nginx 应用。Kubernetes 是一个功能强大的平台,提供了丰富的功能来管理和扩展容器化应用程序。通过掌握本文介绍的基本概念和操作,你可以开始探索 Kubernetes 的更多高级功能,以满足实际应用的需求。

相关推荐
IT成长日记12 分钟前
【Docker基础】Docker数据卷管理:docker volume ls及其参数详解
运维·docker·容器·volume ls
偷萧逸苦茶19 分钟前
docker常见命令
docker·容器·eureka
慌糖9 小时前
微服务介绍
微服务·云原生·架构
高山莫衣14 小时前
Docker Desktop导致存储空间不足时的解决方案
docker·容器·eureka
鹏大师运维14 小时前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
Ahlson14 小时前
【fnNAS】docker的nginx配置html
nginx·docker·容器·fnnas
LuckyLay14 小时前
Compose 常用命令详解——AI教你学Docker
docker·容器·eureka
阿里云云原生14 小时前
阿里云可观测 2025 年 6 月产品动态
云原生
阿里云云原生14 小时前
30 秒锁定黑客攻击:SLS SQL 如何从海量乱序日志中“揪”出攻击源
云原生
moppol15 小时前
容器化 vs 虚拟机:什么时候该用 Docker?什么时候必须用 VM?
运维·docker·容器