k8s安装

2023-05-16

目录

        • 一、K8s概念
        • 二、minikube安装
        • 三、部署应用到集群中
        • 四、Service
        • 五、k8s部署爬虫
          • 1、意义

一、K8s概念

  • 参考文章 ,参考视频
  • 它是一个为 容器化 应用提供集群部署和管理的开源工具,由 Google 开发:Kubernetes 可以为你提供集中式的管理集群机器和应用,加机器、版本升级、版本回滚,那都是一个命令就搞定的事,不停机的灰度更新,确保高可用、高性能、高扩展
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

二、minikube安装

  • 可直接通过官网已经搭建好的测试,不用进行下面的安装https://kubernetes.io/docs/tutorials/hello-minikube/
    在这里插入图片描述

  • 1、先安装docker,docker安装

  • 2、minikube只是一个 K8S 集群模拟器,只有一个节点的集群,只为测试用,master 和 worker 都在一起。安装minikube ,打开PowerShell执行如下命令
    在这里插入图片描述
    在这里插入图片描述

  • 3、然后继续执行minikube start , Kubernetes集群分为一个master主节点和worker工作节点

    # 启动集群
    minikube start --image-mirror-country='cn'
    # 查看节点。kubectl 是一个用来跟 K8S 集群进行交互的命令行工具
    kubectl get node
    # 停止集群
    minikube stop
    # 清空集群
    minikube delete --all
    # 安装集群可视化 Web UI 控制台
    minikube dashboard
    

    在这里插入图片描述在这里插入图片描述

三、部署应用到集群中

  • 1、有两种方式创建pod,一种是直接通过命令行的形式,一种是通过yaml文件的方式创建
  • 2、通过命令行的形式创建pod
    • kubectl run testapp --image=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1
    • kubectl get pod
      在这里插入图片描述
  • 3、通过yaml文件的方式创建单个podkubectl apply -f ./pod1.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: test-pod
    spec:
      # 定义容器,可以多个
      containers:
        - name: test-k8s # 容器名字
          image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像
    
    在这里插入图片描述
  • 4、通过yaml文件的方式部署多个pod,kubectl apply -f ./app1.yamlDeployment 通过 label 关联起来 Pods
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      # 部署名字
      name: test-k8s
    spec:
      replicas: 2
      # 用来查找关联的 Pod,所有标签都匹配才行
      selector:
        matchLabels:
          app: test-k8s
      # 定义 Pod 相关数据
      template:
        metadata:
          labels:
            app: test-k8s
        spec:
          # 定义容器,可以多个
          containers:
          - name: test-k8s # 容器名字
            image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像
    
    在这里插入图片描述
  • 5、部署一个 nodejs web 应用,源码地址:Github
    # 部署应用
    kubectl apply -f app.yaml
    # 查看 deployment
    kubectl get deployment
    # 查看 pod
    kubectl get pod -o wide
    # 查看 pod 详情
    kubectl describe pod pod-name
    # 查看 log
    kubectl logs pod-name
    # 进入 Pod 容器终端, -c container-name 可以指定进入哪个容器。
    kubectl exec -it pod-name -- bash
    # 伸缩扩展副本
    kubectl scale deployment test-k8s --replicas=5
    # 把集群内端口映射到节点
    kubectl port-forward pod-name 8090:8080
    # 查看历史
    kubectl rollout history deployment test-k8s
    # 回到上个版本
    kubectl rollout undo deployment test-k8s
    # 回到指定版本
    kubectl rollout undo deployment test-k8s --to-revision=2
    # 删除部署
    kubectl delete deployment test-k8s
    

四、Service

  • 1、内部服务访问:service.yaml文件
    apiVersion: v1
    kind: Service
    metadata:
      name: kubia
    spec:
      selector:
        app: kubia
      # 默认 ClusterIP 集群内可访问,NodePort 节点可访问,LoadBalancer 负载均衡模式(需要负载均衡器才可用)
      type: ClusterIP
      ports:
        - port: 80        # 本 Service 的端口
          targetPort: 8080  # 容器端口
          # nodePort: 31000   # 节点端口,范围固定 30000 ~ 32767
    
    
  • 2、内部服务的默认类型是ClusterIP,只能在集群内部访问,我们可以进入到 Pod 里面访问:
    kubectl exec -it pod-name -- bash
    curl http://test-k8s:8080
    
  • 3、如果要在集群外部访问,可以通过端口转发实现(只适合临时测试用):kubectl port-forward service/kubia 8888:80 ;如果你用 minikube,也可以这样minikube service test-k8s
    kubectl get pods
    kubectl delete deployment kubia
    kubectl apply -f ./app1.yaml
    kubectl get pods
    kubectl apply -f ./service.yaml
    kubectl get svc
    kubectl describe svc kubia
    kubectl get pod -o wide
    kubectl exec kubia-76d97b7d8f-ffzmb -- curl -s http://kubia:80
    kubectl exec kubia-76d97b7d8f-ffzmb -- curl -s http://10.111.237.97:80
    kubectl port-forward service/kubia 8888:80
    访问localhost:8888
    
    在这里插入图片描述
    在这里插入图片描述
  • 4、对外暴露服务,上面我们是通过端口转发的方式可以在外面访问到集群里的服务,如果想要直接把集群服务暴露出来,我们可以使用NodePort 和 Loadbalancer 类型的 Service
  • 5、外部服务NodePort 的 yaml 文件
    apiVersion: v1
    kind: Service
    metadata:
      name: kubia-nodeport
    spec:
      selector:
        app: kubia
      # 默认 ClusterIP 集群内可访问,NodePort 节点可访问,LoadBalancer 负载均衡模式(需要负载均衡器才可用)
      type: NodePort
      ports:
        - port: 80        # 本 Service 的端口
          targetPort: 8080  # 容器端口
          nodePort: 30123   # 节点端口,范围固定 30000 ~ 32767
    
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 6、外部服务LoadBalancer的 yaml 文件 ,负载均衡器一般由云服务商提供或者自己 裸机搭建,需要一个负载均衡器的支持,因为它需要生成一个新的 IP 对外服务,否则状态就一直是 pendding,这个很少用,更高端的 Ingress 代替它
    在这里插入图片描述

五、k8s部署爬虫

1、意义
  • 1、了解过Docker Compose的应该知道,可以非常方便地启动Docker容器运行爬虫,然而大规模运维是行不通的!!!
    • 如何快速部署几十、上百、上千个爬虫程序并协同爬取?
    • 如何实现爬虫的批量更新?
    • 如何实时查看爬虫的运行状态和日志?
  • 2、未完不续
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s安装 的相关文章

  • centos 安装k8s

    第一步 每台机子都做 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 第二步 每台机子都做 永久关闭selinux sed i s enforcing disabled
  • K8s中的Deployment

    Deployment是kubernetes在1 2版本中引入的新概念 用于更好的解决Pod的编排问题 为此 Deployment在内部使用了ReplicaSet来实现目的 我们可以把Deployment理解为ReplicaSet的一次升 级
  • K8s部署自己的web项目

    一 静态网页项目 1 前端项目源码下载 链接 https pan baidu com s 15jCVawpyJxa0xhCJ9SwTCQ 提取码 m4an 2 编写nginx conf和Dockerfile 放在项目根目录下 1 创建ngi
  • K8s基础10——数据卷、PV和PVC、StorageClass动态补给、StatefulSet控制器

    文章目录 一 数据卷类型 1 1 临时数据卷 节点挂载 1 2 节点数据卷 节点挂载 1 3 网络数据卷NFS 1 3 1 效果测试 1 4 持久数据卷 PVC PV 1 4 1 效果测试 1 4 2 测试结论 二 PV PVC生命周期 2
  • K8S 工作负载(一)

    K8S 工作负载 1 Pod Pod 是 Kubernetes 中创建 管理和调度的最小计算单元 用户可以在 K8S 中通过调用 Pod API生成一个 Pod 让 K8S 对其进行调度 Pod 是一组 一个或多个 容器 这些容器共享存储
  • k8s删除Terminating 的命名空间等资源

    背景 在k8s中执行删除命名空间后 命名空间没有被删除而是处于Terminating状态 此时再执行删除仍然删除不掉 解决 将要删除的命名空间信息导出为json数据 下面traefik v2 替换成你需要删除的命名空间名称 kubectl
  • docker下mysql镜像初始化

    目录 1 介绍 2 部署及验证 2 1 场景复现 2 2 创建dockerfile 2 3 初始化脚本 2 4 构建镜像并查看 2 5 创建容器并验证 2 6 完成 1 介绍 原理 当Mysql容器首次启动时 会在 docker entry
  • k8s部署之ETCD集群

    k8s部署之ETCD集群 1 etcd下载 etcd下载地址 https github com coreos etcd releases 从github etcd的发布页面选取相应的版本用 wget url 来下载 如 wget https
  • Rancher 全球化部署最佳实践

    作者 万绍远 CNCF 基金会官方认证 Kubernetes CKA CKS 工程师 云原生解决方案架构师 对 ceph Openstack Kubernetes prometheus 技术和其他云原生相关技术有较深入的研究 参与设计并实施
  • kube-flannel.yml

    flannel作为k8s的集群中常用的网络组件 其yml文件的获取 建议去github中获取 具体的获取方式如下 apiVersion policy v1beta1 kind PodSecurityPolicy metadata name
  • k8s--基础--23.1--认证-授权-准入控制--介绍

    k8s 基础 23 1 认证 授权 准入控制 介绍 1 介绍 k8s对我们整个系统的认证 授权 访问控制做了精密的设置 对于k8s集群来说 apiserver是整个就集群访问控制的唯一入口 我们在k8s集群之上部署应用程序的时候 可以通过宿
  • kubernetes最佳实践(三) - kubedns部署

    1 服务发现 kubernetes 提供了 service 的概念可以通过 VIP 访问 pod 提供的服务 但是在使用的时候还有一个问题 怎么知道某个应用的 VIP 比如我们有两个应用 一个 app 一个 是 db 每个应用使用 rc 进
  • kubeadm配置虚拟机k8s集群

    环境 centos7 vm pro windows terminal termius 虚拟机 硬件配置 2核2G 实验用 具体可根据电脑调整 配置3台 master01 node01 node02 通过克隆虚拟机直接复制 配置通一项以后建议
  • k8s-node节点未找到flannel网络

    k8s node节点的flannel的IP地址不正确 问题描述 问题分析 1 检查node节点的cni和flannel网卡地址 2 检查master节点的flannel服务 如何重置flannel网络 1 删除node节点 master 2
  • k8s 裸机安装 nginx1.19 ingrass

    k8s 裸机安装 nginx1 19 ingrass deploy yaml文件如下 apiVersion v1 kind Namespace metadata name ingress nginx labels app kubernete
  • 决战k8s,Kubernetes、Master节点部署组件,部署kube-proxy、测试、部署Dashboard(Web UI)、超细详解 ,安装篇③完结篇

    文章目录 下面这些操作在master节点完成 创建kubeconfig文件 创建kube proxy kubeconfig文件 下面这些操作在node节点完成 俩个节点上面拉取镜像 systemd管理kubelet组件 部署kube pro
  • k8s学习(五)ReplicaSet的使用

    ReplicaSet ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合 可确保指定数量的pod在任何设定的时间运行 因此 它通常用来保证给定数量的 完全相同的 Pod 的可用性 示例 1 nginx
  • K8s基础6——应用配置管理方案、调度策略、污点和污点容忍

    文章目录 一 应用配置管理方案 1 1 ConfigMap 1 1 1 注入变量 1 1 2 挂载数据卷 1 2 Secret 1 2 1 数据卷挂载 1 2 2 变量注入 二 调度策略 2 1 nodeSelector定向调度 2 1 1
  • 基于minikube的k8s单机环境部署ThingsBoard

    1 minikube安装k8s单机版 https blog csdn net qq 39879126 article details 121587678 2 安装ThingsBoard 下载 https github com thingsb
  • DHorse v1.3.2 发布,基于 k8s 的发布平台

    版本说明 新增特性 构建版本 部署应用时的线程池可配置化 优化特性 构建版本跳过单元测试 解决问题 解决Vue应用详情页面报错的问题 解决Linux环境下脚本运行失败的问题 解决下载Maven安装文件失败的问题 升级说明 下载v1 3 2安

随机推荐

  • windows, 放方向键设置为vim格式,autohotkey-windows

    安装 Autohotkey https www autohotkey com download 设置快捷键 随便找个目录 鼠标右键新建一个autohotkey的脚本 映射一个键 上左下右 经常打字的人都知道 我们编辑文本时要上下左右移动光标
  • window设置快捷键左右方向键

    autohotkey windows快捷键设置神器 使用方法 地址
  • Linux系统无痛编译安装LLVM简明指南

    1 编译与预编译版本选择 如果对LLVM没有特别需求 xff0c 只是当作一般编译器使用 xff0c 安装预编译版也足以应付场面 xff1b 如果需要对LLVM作个性化定制 xff0c 或基于LLVM开发 xff0c 或学习LLVM源码 x
  • ROS:订阅话题并发布(订阅amcl_pose数据并发布)

    一 创建节点 cd span class token operator span span class token operator span catkin ws span class token operator span src cat
  • 什么是API,SDK和API之间有什么关系呢?

    随着软件规模的日益庞大 xff0c 常常需要把复杂的系统划分成小的组成部分 xff0c 编程接口的设计十分重要 xff0c 程序设计的实践中 xff0c 编程接口的设计首先要使软件系统的职责得到合理划分 xff0c 良好的接口设计可以降低系
  • PX4下gazebo 仿真 offboard模式(ubuntu18.04)

    PX4下gazebo 仿真 offboard模式 xff08 ubuntu18 04 xff09 1 ros与gazebo安装 这里不多说了 xff0c 上网找教程或者按照ros官网教程安装完成ros melodic的完整版 xff0c g
  • px4与gazebo的多无人机编队仿真,offboard模式

    px4下基于ros和gazebo的多无人机编队仿真 xff0c offboard模式 单机的offboard仿真见https blog csdn net weixin 43409270 article details 114585397 多
  • 软件工程面向对象方法、Coad、Booch、OMT、UML方法

    1 Booch方法 Booch最先描述了面向对象的软件开发方法的基础问题 xff0c 指出面向对象开发是一种根本不同于传统的功能分解的设计方法 面向对象的软件分解更接近人对客观事务的理解 xff0c 而功能分解只通过问题空间的转换来获得 B
  • 机器人地面站-[QGroundControl源码解析]-[1]

    目录 前言 一 CmdLineOptParser 二 JsonHelper 三 KMLDomDocument 四 ShapeFileHelper 五 SHPFileHelper 六 KMLHelper 七 LogCompressor 总结
  • 机器人地面站-[QGroundControl源码解析]-[2]

    目录 前言 一 QGC 二 QGCComboBox 三 QGCFileDownload 四 QGCLoggingCategory 五 QGCMapPalette 六 QGCPalette 七 QGCQGeoCoordinate 八 QGCT
  • 机器人地面站-[QGroundControl源码解析]-[9]-[Camera]

    目录 前言 一 QGCCameraManager 二 QGCCameraIO 三 QGCCameraControl 前言 本篇介绍Camera文件夹下的内容 xff0c 该文件夹下又三个类文件 xff0c 分别是QGCCameraManag
  • C++开发精髓 阅读笔记

    第三章 pstack的使用 将C 43 43 类对象实例指针作为线程函数的参数 bind函数 span class token keyword auto span newCallable span class token operator
  • js逆向工具-油猴Tampermonkey脚本hook案例

    目录 一 油猴下载与安装二 油猴脚本免费使用网站三 油猴脚本编写介绍1 添加新脚本2 油猴脚本注释内容解释3 编写油猴脚本的基本步骤4 油猴脚本调试测试 四 hook之js逆向案例1 hook之window属性案例2 hook之cookie
  • js逆向案例-rus4逻辑学习

    目录 一 RS4特点二 网站请求流程特点三 网站加载js的顺序四 正式逻辑的研究1 cookie如何定位 xff1f 2 扣函数缺啥补啥注意事项 xff1f 3 如何获取 96 ts动态变量 96 值 xff1f 4 如何定位 96 MmE
  • js逆向案例-初学signature

    一 反爬点 案例网址 xff0c 向下滚动加载页面时的请求参数反爬signature xff0c 明显的特征 xff1a acrawler js以及window jsvmprt 34 二 反爬分析 参考文章1 xff0c 参考文章2 xff
  • Android逆向基础入门

    目录 一 基础App数据抓取1 App常用抓包工具2 fiddler抓包工具3 mitmdump抓包工具4 charles抓包工具5 uiautomatorviewer appium自动化工具6 Airtest自动化工具 二 js逆向与ap
  • 自动化测试工具-Airtest

    目录 一 Airtest介绍与安装二 Airtest基于图像识别自动控制手机App流程三 Airtest基于Poco的UI组件自动化控制App流程四 Airtest实现手机群控操作 一 Airtest介绍与安装 主要介绍区别 xff0c 以
  • Docker桌面版安装与使用(windows)

    目录 一 Docker概念二 下载安装三 docker镜像安装与操作四 制作自己的python镜像容器五 目录挂载六 多容器通信七 Docker Compose管理多个容器运行八 发布和部署九 备份数据迁移 一 Docker概念 1 Doc
  • Gradio 机器学习和数据科学开源 Python 库

    Gradio是一个开源的 Python 库 xff0c MIT的开源项目 xff0c 用于构建机器学习和数据科学演示和 Web 应用 Gradio的定位类似于Streamlit xff0c 但是更轻量 xff0c 因为它推荐的应用场景都是对
  • k8s安装

    目录 一 K8s概念二 minikube安装三 部署应用到集群中四 Service五 k8s部署爬虫1 意义 一 K8s概念 参考文章 xff0c 参考视频它是一个为 容器化 应用提供集群部署和管理的开源工具 xff0c 由 Google