Kubernetes(k8s)基础入门详细教程

这篇具有很好参考价值的文章主要介绍了Kubernetes(k8s)基础入门详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Kubernetes(通常称为K8s)是一个用于自动化容器化应用程序管理的开源平台。它可以帮助您轻松地部署、扩展和管理容器化应用程序。

1. Kubernetes基本概念:

1.1 Pod(容器组):

Pod是Kubernetes中最小的可部署单元,它是一个或多个紧密关联的容器的组合。这些容器共享相同的网络命名空间、存储资源和生命周期。Pod通常用于封装应用程序的组件,例如Web服务器、数据库或后台任务。

1.2 Deployment(部署):

Deployment是一种声明性的对象,用于定义Pod和副本集的规范。它描述了如何创建和更新Pod,包括所需的副本数量、Pod模板以及更新策略。Deployment提供了应用程序的声明性定义,使得管理和升级应用程序变得更加方便。

1.3 Service(服务):

Service是一种抽象,用于公开一组Pod作为网络服务。它为Pod提供了一个稳定的网络终结点,并通过负载均衡将流量分发到这些Pod。Service可以根据其标签选择器来选择要公开的Pod,并为它们分配一个唯一的访问IP和端口。

1.4 ReplicaSet(副本集):

ReplicaSet确保指定数量的Pod副本正在运行。它是Deployment背后的实现机制之一。当Pod的数量少于指定的副本数量时,ReplicaSet会自动创建新的Pod副本。当Pod的数量多于指定的副本数量时,ReplicaSet会自动删除多余的Pod。

1.5 Namespace(命名空间):

Namespace用于在Kubernetes集群中对资源进行隔离和分组。它是一种虚拟的集群划分方式,可以将集群划分为多个逻辑部分。通过将资源放置在不同的命名空间中,可以将不同的团队、项目或环境隔离开来,提高集群的可管理性和安全性。

1.6 Label(标签)和 Selector(选择器):

Label是用于标识Kubernetes对象的键值对。它们可以被附加到Pod、Deployment、Service等对象上,并用于标识和组织这些对象。Selector是一种用于选择带有特定标签的对象的机制,它可以在Service、ReplicaSet等对象中使用,以确定要操作的对象集。

1.7 ConfigMap(配置映射)和 Secret(秘密):

ConfigMap用于存储应用程序的配置数据,例如环境变量、配置文件等。它可以在Pod中作为卷(Volume)或环境变量使用。Secret用于存储敏感信息,例如密码、API密钥等。Secrets被Base64编码并且以安全的方式传输和存储。

1.8 Volume(存储卷):

Volume用于在Pod和容器之间共享和持久化数据。它可以将磁盘、网络存储、主机文件系统等附加到Pod中,以便应用程序可以在其上进行读写操作。Volume使得数据在Pod重新启动或迁移时仍然可用。

1.9 StatefulSet(有状态副本集):

StatefulSet用于管理有状态应用程序的部署。与无状态应用程序不同,有状态应用程序具有持久性数据和唯一的网络标识。StatefulSet确保Pod按照定义的顺序和标识进行创建、更新和删除,并为每个Pod分配一个稳定的网络标识。

1.10 DaemonSet(守护进程集):

DaemonSet用于在集群中的每个节点上运行一个Pod的副本。它适用于需要在每个节点上运行特定任务的情况,例如日志收集、监视代理等。

1.11 Job和CronJob:

Job用于运行一次性任务,即运行到完成的任务。CronJob基于Cron表达式定时运行任务,例如定期备份、定时清理等。

1.12 Ingress(入口):

Ingress是一种用于公开集群内服务的规则集合。它允许外部流量通过统一的入口访问集群中的多个服务。Ingress可以配置路由规则、SSL/TLS证书等。文章来源地址https://www.toymoban.com/news/detail-526083.html

2. 如何使用Kubernetes管理应用程序:

2.1 查看集群信息:

kubectl cluster-info: 显示集群信息。
kubectl config view: 显示当前kubectl配置信息。

2.2 查看资源状态:

kubectl get pods: 查看所有Pod的状态。
kubectl get deployments: 查看所有部署的状态。
kubectl get services: 查看所有服务的状态。
kubectl get nodes: 查看所有节点的状态。
kubectl get namespaces: 查看所有命名空间的状态。
kubectl describe pod <pod-name>: 显示特定Pod的详细信息。

2.3 创建和管理资源:

kubectl create -f <filename>: 根据YAML文件创建资源。
kubectl apply -f <filename>: 根据YAML文件创建或更新资源。
kubectl delete -f <filename>: 根据YAML文件删除资源。
kubectl scale deployment <deployment-name> --replicas=<replica-count>: 扩展或缩减部署的副本数。
kubectl expose deployment <deployment-name> --port=<port> --type=<service-type>: 创建一个服务来公开部署。

2.4 执行操作:

kubectl exec -it <pod-name> -- <command>: 在Pod中执行特定命令。
kubectl logs <pod-name>: 查看Pod的日志。
kubectl port-forward <pod-name> <local-port>:<pod-port>: 将本地端口与Pod的端口进行转发。

2.5 升级和回滚:

kubectl set image deployment/<deployment-name> <container-name>=<new-image>: 更新部署的容器镜像。
kubectl rollout status deployment/<deployment-name>: 检查部署的滚动更新状态。
kubectl rollout undo deployment/<deployment-name>: 回滚部署到先前版本。

2.6 删除资源:

kubectl delete deployment <deployment-name>: 删除部署。
kubectl delete pod <pod-name>: 删除Pod。
kubectl delete service <service-name>: 删除服务。

3. Kubernetes服务常用命令:

3.1 查看服务状态:

kubectl get services: 查看所有服务的状态。
kubectl describe service <service-name>: 显示特定服务的详细信息。

3.2 创建和管理服务:

kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=<service-type>: 创建一个服务来公开部署,并指定端口和类型。
kubectl create service <service-type> <service-name> --tcp=<port>:<target-port>: 创建一个服务并将其绑定到指定的端口和目标端口。
kubectl edit service <service-name>: 编辑服务的配置。

3.3 负载均衡和端口转发:

kubectl port-forward <pod-name> <local-port>:<pod-port>: 将本地端口与Pod的端口进行转发。
kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=LoadBalancer: 创建一个负载均衡服务,并将外部流量分发到部署的Pod。

3.4 查看负载均衡器IP:

kubectl get services: 查找负载均衡服务的External IP(在云环境中)或者LoadBalancer Ingress(在本地环境中)。

3.5 删除服务:

kubectl delete service <service-name>: 删除服务。

4. 监视Kubernetes集群:

4.1 查看资源状态:

kubectl get pods: 查看所有Pod的状态。
kubectl get deployments: 查看所有部署的状态。
kubectl get services: 查看所有服务的状态。
kubectl get nodes: 查看所有节点的状态。
kubectl get namespaces: 查看所有命名空间的状态。

4.2 监视资源:

kubectl describe pod <pod-name>: 显示特定Pod的详细信息。
kubectl describe deployment <deployment-name>: 显示特定部署的详细信息。
kubectl describe service <service-name>: 显示特定服务的详细信息。
kubectl describe node <node-name>: 显示特定节点的详细信息。

4.3 实时日志:

kubectl logs <pod-name>: 查看Pod的日志。
kubectl logs -f <pod-name>: 实时查看Pod的日志。
kubectl logs -f -l <label-selector>: 根据标签选择器实时查看多个Pod的日志。

4.4 集群事件:

kubectl get events: 查看集群中的事件。
kubectl describe event <event-name>: 显示特定事件的详细信息。

4.5 资源使用情况:

kubectl top pods: 查看Pod的资源使用情况。
kubectl top nodes: 查看节点的资源使用情况。

4.6 监视滚动更新:

kubectl rollout status deployment/<deployment-name>: 检查部署的滚动更新状态。
kubectl rollout history deployment/<deployment-name>: 查看部署的更新历史记录。

4.7 扩展和缩减副本数:

kubectl scale deployment <deployment-name> --replicas=<replica-count>: 扩展或缩减部署的副本数。

到了这里,关于Kubernetes(k8s)基础入门详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 超详细的kubeedge与kubernetes(k8s)环境配置教程

    超详细的kubeedge与kubernetes(k8s)环境配置教程

    注意: 对于kubeedge和k8s的监控可以参考这一篇——通过prometheus和grafana来监管数据; 对于虚拟机环境的搭建可以参考这一篇。 对于搭建所需文件:阿里云盘 本文最后由错误归纳。 文章每周更新,如果喜欢的话可以三联!!! 云端只部署一个master节点,边缘端部署一个edgen

    2024年02月04日
    浏览(12)
  • Centos7安装部署k8s(kubernetes)最新v1.27.1版本超详细安装教程

    从零开始的k8s安装 硬件配置要求 cpu = 2核 硬盘 = 20G 内存 = 2G 节点数量建议为奇数(3, 5, 7, 9等)(1台好像也能搭,没试过) 以下命令出除特殊要求外,其余都建议在master主机执行 本教程配置如下 主机名 IP 配置 master 192.168.42.150 2核+2G+20G node1 192.168.42.151 2核+2G+20G node2 192.168.

    2024年02月11日
    浏览(32)
  • kubernetes(k8s)——使用教程

    1、为了保证k8s的稳定,和其他的应用一样,我们会搭建k8s集群。 2、k8s集群管理我们发布的容器。 3、k8s是通过pod管理容器的:将共享一些资源和端口的容器放到同一个pod中,然后负责pod的创建和部署。 4、k8s部署pod的方式:选择一个node(就是节点,也可以理解为主机),将

    2024年02月04日
    浏览(15)
  • Kubernetes(k8s)集群部署----->超详细

    Kubernetes(k8s)集群部署----->超详细

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(简称k8s)是一个开源的容器编排平台,可以帮助开发人员和运维团队更轻松地管理容器化应用程序。本文将详细介绍如何进行k8s集群的部署,以帮助读者快速搭建一个高可用、可伸缩的k8s集群。 1、操作系统:至少三台物理机或

    2024年02月05日
    浏览(15)
  • Kubernetes(k8s)入门:核心组件详解

    Kubernetes(k8s)入门:核心组件详解

    附:集群搭建请移步: Kubernetes(k8s)集群搭建,完整无坑,不需要科学上网~ Controllers官网文档:https://kubernetes.io/docs/concepts/workloads/controllers/ 官网:https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/ 官网原文:A ReplicationController ensures that a specified number of pod repl

    2024年02月13日
    浏览(15)
  • Kubernetes、k8s从入门到实战

    Kubernetes、k8s从入门到实战

    本文章用到k8s安装包及工具文件链接:https://pan.baidu.com/s/1gYU9xxwxI9cXfJ1IJGQjwg?pwd=ye11 提取码:ye11 我们对于云计算的概念,维基百科有以下定义: Cloud computing is a new form of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand. 云计算就是

    2024年01月19日
    浏览(37)
  • Kubernetes(K8S)的基础概念

    Kubernetes(K8S)的基础概念

    用于自动部署、扩展和管理“容器化( containerized) 应用程序”的开源系统 可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是–个生态极其丰富的容器编排框架工具 由来: k8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后

    2024年02月05日
    浏览(49)
  • Kubernetes(k8s)超详细的安装步骤

    Kubernetes(k8s)超详细的安装步骤

    目录 一、环境设置 二、基本环境配置 (一)主机名配置 1、在master虚拟机上操作 2、在node1r虚拟机上操作 3、在node2虚拟机上操作 (二)VMware网络配置 (三)虚拟机网络配置 1、在master虚拟机上操作 2、在node1r虚拟机上操作 3、在node2虚拟机上操作 4、虚拟机内部测试  (四)

    2024年02月14日
    浏览(19)
  • 【kubernetes】认识K8S基础理论

    【kubernetes】认识K8S基础理论

    目录 一、k8s是什么? 二、为什么要用k8s? 三、k8s的主要功能 四、k8s的集群架构和组件 4.1k8s的集群架构介绍 4.2k8s的master的核心组件 ①kube-apiserver:作为所有服务请求的统一访问入口 ②kube-controller-manager:控制器管理器,可以通过apiserver监控整个集群的状态,确保集群处于预

    2024年03月16日
    浏览(17)
  • 【k8s权威指南】第1章 Kubernetes入门

    本系列文章是书籍:Kubernetes权威指南(第四版):从Docker到Kubernetes实践全接触/龚正等 编著. 的学习笔记 第1章 Kubernetes入门 第2章 Kubernetes安装配置指南 第3章 深入掌握Pod 第4章 深入掌握Service 第5章 核心组件运行机制 第6章 深入分析集群安全机制 第7章 网络原理 第8章 共享存

    2023年04月09日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包