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 的更多高级功能,以满足实际应用的需求。

相关推荐
米高梅狮子3 小时前
03.Kubernetes自动化部署和namespace、pod
容器·kubernetes·自动化
特长腿特长3 小时前
LVS_DR 模式的原理
linux·运维·网络·云原生·centos·lvs
Sirius Wu4 小时前
Docker 镜像的构建、打包、变更、再次打包全流程
运维·docker·容器
Zhu7585 小时前
【软件部署】docker环境部署domino
运维·docker·容器
努力的搬砖人.8 小时前
配置 Docker 镜像加速器
运维·docker·容器
江湖有缘8 小时前
实时监控所有端口,Docker 部署 WatchYourPorts 保姆级教程
运维·docker·容器
pupudawang8 小时前
docker desktop安装redis
redis·docker·容器
青槿吖9 小时前
Sentinel 进阶实战:Feign 整合 + 全局异常 + Nacos 持久化,生产环境直接用
java·开发语言·spring cloud·微服务·云原生·ribbon·sentinel
赴前尘9 小时前
S3 命令行工具 Docker 容器运行
运维·docker·容器
米高梅狮子9 小时前
04.yaml和Kubernetes Pod精讲
云原生·容器·kubernetes