K8s简单入门

embedded/2024/9/20 1:22:56/ 标签: 容器, kubernetes

Kubernetes (K8s) 是一个开源的容器编排平台,用于自动部署、扩展和管理容器化应用程序。以下是 Kubernetes 的入门指南,涵盖了基本概念、安装、常用命令以及部署示例。

基本概念

  1. Pod:Kubernetes 中最小的可部署单元,一个 Pod 可以包含一个或多个容器
  2. Node:运行 Pod 的机器,可以是物理机或虚拟机。
  3. Cluster:一组 Node 组成的集合,运行在 Kubernetes 控制平面下。
  4. Namespace:用于将资源分隔开的虚拟集群。
  5. Deployment:管理 Pod 的部署和缩放。
  6. Service:定义一组 Pod 的逻辑集合,并定义如何访问它们。
  7. ConfigMap 和 Secret:存储配置信息和敏感信息。

安装 Kubernetes

可以使用 Minikube 在本地机器上安装 Kubernetes 集群。Minikube 是一个轻量级的 Kubernetes 实现,可以在本地运行单节点集群。

  1. 安装 Minikube 和 kubectl:

    • 安装 Minikube
    • 安装 kubectl
  2. 启动 Minikube:

    minikube start
    
  3. 验证安装:

    kubectl cluster-info
    

常用命令

  1. 创建 Pod

    kubectl run mypod --image=nginx --restart=Never
    
  2. 查看 Pod

    kubectl get pods
    
  3. 描述 Pod

    kubectl describe pod mypod
    
  4. 删除 Pod

    kubectl delete pod mypod
    
  5. 创建 Deployment

    kubectl create deployment myapp --image=nginx
    
  6. 查看 Deployment

    kubectl get deployments
    
  7. 扩展 Deployment

    kubectl scale deployment myapp --replicas=3
    
  8. 暴露 Deployment

    kubectl expose deployment myapp --type=NodePort --port=80
    
  9. 查看 Service

    kubectl get services
    

部署示例

以下是一个简单的示例,展示如何在 Kubernetes 中部署一个 Nginx 应用。

  1. 创建 Deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: nginx-deployment
    spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80
    

    将上述内容保存为 nginx-deployment.yaml 文件,然后应用该文件:

    kubectl apply -f nginx-deployment.yaml
    
  2. 创建 Service

    apiVersion: v1
    kind: Service
    metadata:name: nginx-service
    spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: NodePort
    

    将上述内容保存为 nginx-service.yaml 文件,然后应用该文件:

    kubectl apply -f nginx-service.yaml
    
  3. 验证部署

    查看 Pod、Deployment 和 Service 的状态:

    kubectl get pods
    kubectl get deployments
    kubectl get services
    

    通过 Minikube IP 访问 Nginx 服务:

    minikube service nginx-service
    

进阶

  1. ConfigMap 和 Secret

    • 创建 ConfigMap:
      kubectl create configmap my-config --from-literal=key1=value1
      
    • 创建 Secret:
      kubectl create secret generic my-secret --from-literal=password=my-password
      
  2. 持久化存储 (Persistent Volumes and Persistent Volume Claims)

    • 创建 Persistent Volume:
      apiVersion: v1
      kind: PersistentVolume
      metadata:name: my-pv
      spec:capacity:storage: 1GiaccessModes:- ReadWriteOncehostPath:path: "/mnt/data"
      
    • 创建 Persistent Volume Claim:
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:name: my-pvc
      spec:accessModes:- ReadWriteOnceresources:requests:storage: 1Gi
      
  3. Ingress 控制器

    • 创建 Ingress 资源以路由 HTTP 和 HTTPS 流量:
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:name: example-ingress
      spec:rules:- host: example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: nginx-serviceport:number: 80
      

通过这些步骤,您可以入门 Kubernetes 并开始在集群中部署和管理容器化应用程序。


http://www.ppmy.cn/embedded/56229.html

相关文章

《侃侃而谈 · 为什么动笔》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻一周,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

Django项目 - 合并PDF文件

合并PDF文件可以很好将信息做整合。 博主实现了下面功能: 检测上传的文件是否是PDF从本地拖拽PDF文件到该系统显示需合并文件总数对需合并PDF文件进行排序,删除可预览合并PDF文件下载合并好的PDF文件 代码存放在码云:代码 创作不易&#…

HDU 1506 Largest Rectangle in a Histogram (DP或单调栈+笛卡尔树)

传送门 题目大意: 有N条的长条状的矩形,宽度都为1,第i条高度为Hi,相邻的竖立在x轴上,求最大的子矩形面积 DP思路及代码 求出当前点能够到达的最左边和最右边的位置,答案就是(最右边-最左边&…

vue响应式原理细节分享

在讲解之前,我们先了解一下数据响应式是什么?所谓数据响应式就是建立响应式数据与依赖(调用了响应式数据的操作)之间的关系,当响应式数据发生变化时,可以通知那些使用了这些响应式数据的依赖操作进行相关更…

C#委托事件的实现

1、事件 在C#中事件是一种特殊的委托类型,用于在对象之间提供一种基于观察者模式的通知机制。 1.1、事件的发送方定义了一个委托,委托类型的声明包含了事件的签名,即事件处理器方法的签名。 1.2、事件的订阅者可以通过+=运算符来注册事件处理器。 1.3、当事件发送方触发事件…

22、PHP 实现连续子数组的最大和、整数中1出现的次数

题目: PHP 实现连续子数组的最大和 描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。 今天测试组开完会后,他又发话了:在古老的一维模式识别中, 常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。 但是,如果向量中包含负数…

记一次面试

Linux查日志,怎么把最后1000行写到另一个文件中 在Linux中,如果你想要查看日志文件的最后1000行并将其写入到另一个文件中,你可以使用tail命令。tail命令默认用于输出文件的最后几行。 以下是如何使用tail命令将日志文件的最后1000行写入到另…

如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 对于大多数邮件服务器管理员来说,被错误地标记为垃圾邮件发送者的沮丧并不陌生。除了排除服务器被入侵的可能性外&…

WPF自定义模板--TreeView 实现菜单连接线

有些小伙伴说&#xff0c;在TreeView中&#xff0c;怎么每一个都加上连接线&#xff0c;进行显示连接。 代码和效果如下&#xff1a; 其实就是在原来的模板中增加一列显示线条&#xff0c;然后绘制即可 <Window x:Class"XH.TemplateLesson.TreeViewWindow"xmln…

【TS】TypeScript 中的 any 与 unknown:理解与实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 中的 any 与 unknown&#xff1a;理解与实践一、引言二、any&#x…

【介绍下SCSS的基本使用】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

2024最新!将mysql的数据导入到Solr

Solr导入mysql的数据 如何安装导入数据前准备配置Solr的Jar包以及Mysql驱动包1.1、将solr-8.11.3\dist下的两个包进行移动1.2、将mysql-connect包也移动到该位置1.3、重启Solr项目 配置xml2.1、第一步我们需要创建核心2.2、第二步修改xml(这里是结合19年的教程)2.3、 创建data-…

Kotlin设计模式:工厂方法详解

Kotlin设计模式&#xff1a;工厂方法详解 工厂方法模式&#xff08;Factory Method Pattern&#xff09;在Kotlin中是一种常见的设计模式&#xff0c;用于将对象创建的责任委派给单一的方法。本文将详细讲解这一模式的目的、实现方法以及使用场景&#xff0c;并通过具体的示例…

Python爬取国家医保平台公开数据

国家医保服务平台数据爬取python爬虫数据爬取医疗公开数据 定点医疗机构查询定点零售药店查询医保机构查询药品分类与代码查询 等等&#xff0c;数据都能爬 接口地址&#xff1a;/ebus/fuwu/api/nthl/api/CommQuery/queryFixedHospital 签名参数&#xff1a;signData {dat…

QQ录屏文件保存在哪里?一键教你快速查询

无论是记录重要的工作内容&#xff0c;还是分享生活中的点滴&#xff0c;屏幕录制都发挥着至关重要的作用。在众多屏幕录制工具中&#xff0c;qq录屏以其简单易用、功能丰富的特点&#xff0c;受到了广大用户的喜爱。本文将为您揭示qq录屏文件保存在哪里&#xff0c;帮助大家更…

[软件安装]linux下安装steam

1、下载安装包到linux系统 SteamTools 发行版 - Gitee.com 2、选择对应的版本 3、解压安装包steam &#xff08;1&#xff09;在opt路径下新建一个文件夹 sudo mkdir steam &#xff08;2&#xff09;进入压缩包路径下&#xff0c;打开终端&#xff0c;执行以下代码进行解压…

智能化浪潮下的二手车市场:如何构建高效的管理系统

在数字化时代背景下&#xff0c;二手车市场正经历着前所未有的变革。智能化管理系统以其高效、透明的特性&#xff0c;为解决市场长期存在的信息不对称和交易流程复杂问题提供了新思路。 一、二手车市场现状 二手车市场作为汽车行业的重要组成部分&#xff0c;正受到越来越多…

使用Java开发工具包会遇到哪些问题

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;Java作为一门广泛应用于企业级应用、安卓开发、大数据处理等领域的编程语言&#xff0c;其强大的跨平台能力和丰富的类库支持吸引了无数开发者。然而&#xff0c;在使用Java开发工具包(Java Development …

前端面试题(13)答案版

姓名&#xff1a; 面试时间&#xff1a; 面试岗位&#xff1a; 1. 介绍介绍自己的项目,权限怎么做?如何添加动态路由? - 答:对于项目介绍,我会重点介绍自己参与的主要功能模块,以及在项目中担任的角色和责任。 在权限管理方面,通常会采用基于…

京东e卡怎么用?

京东618过去后&#xff0c;就没有多大购物欲望了&#xff0c;最后导致我手里还有好几张200块钱面值的e卡没地方用 本来说送朋友&#xff0c;但是又感觉面值太小了 最后还是在收卡云上把提取出来了&#xff0c;主要回收价格不错&#xff0c;而且到账也快&#xff0c;很方便