【K8S】Hello World

文章目录

  • 1 搭建本地测试环境
    • 1.1 安装 docker和 Colima
    • 1.2 安装 minikube
    • 1.3 启动minikube
    • 1.4 安装 kubectl
    • 1.5 注册 docker hub镜像仓库
  • 2 k8s核心资源概念
    • 2.1 Pod
    • 2.2 Deployment
    • 2.3 Service
    • 2.4 Ingress
  • 参考资料

1 搭建本地测试环境

本文以 mac os为例

1.1 安装 docker和 Colima

brew install docker
brew install colima

1.2 安装 minikube

  • minikube用来管理本地k8s集群
brew install minikube
  • 常用命令
minikube stop #不会删除任何数据,只是停止 VM 和 k8s 集群。minikube delete #删除所有 minikube 启动后的数据。minikube ip #查看集群和 docker enginer 运行的 IP 地址。minikube pause #暂停当前的资源和 k8s 集群minikube status #查看当前集群状态

1.3 启动minikube

minikube start --vm-driver docker --container-runtime=docker

1.4 安装 kubectl

brew install kubectl

1.5 注册 docker hub镜像仓库

  • 在页面注册后,使用账号密码登录,登录前需要先启动 docker
docker login
  • 如果登录遇到这样的报错:
Post "http://ipc/registry/credstore-updated": dial unix backend.sock: connect: no such file or directory

则修改~/.docker/config.json文件,删除下面这一行,然后重新使用登录命令即可。

"credsStore": "desktop"

2 k8s核心资源概念

2.1 Pod

  • pod是k8s中创建和管理的、最小的可部署的计算单元。
  • 服务运行在容器当中, container (容器) 的本质是进程,而 pod 是管理这一组进程的资源。一个 pod可以管理多个 container。
    在这里插入图片描述
  • 创建一个 pod的示例配置文件
# nginx.yaml
apiVersion: v1
kind: Pod
metadata:name: nginx-pod
spec:containers:- name: nginx-containerimage: nginx
  • 通过 kubectl相关命令创建
kubectl apply -f nginx.yaml
kubectl get pods
kubectl port-forward nginx-pod 4000:80
kubectl exec -it nginx-pod /bin/bash
kubectl describe pod nginx-pod

2.2 Deployment

  • Deployment是 k8s中帮助我们管理 pod的资源,比如自动扩容和升级版本。
  • 创建一个 Deployment的示例配置文件。template 标签下的内容是用来定义 pod 资源的,我们需要加上 metadata.labels 来和上面的 selector.matchLabels 对应起来。来表明 pod 是被 deployment 管理,不用在template 里面加上 metadata.name 是因为 deployment 会主动为我们创建 pod 的唯一name
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: hellok8s-deployment
spec:replicas: 1selector:matchLabels:app: hellok8stemplate:metadata:labels:app: hellok8sspec:containers:- image: xxxx/hellok8s:v1name: hellok8s-container
  • 当手动删除一个 pod资源后,deployment 会自动创建一个新的 pod。
    在这里插入图片描述
  • 回滚操作
kubectl rollout undo deployment hellok8s-deployment
kubectl rollout history deployment hellok8s-deployment
kubectl rollout undo deployment/hellok8s-deployment --to-revision=2

2.3 Service

  • Service 为 pod 提供一个稳定的 Endpoint。Service 位于 pod 的前面,负责接收请求并将它们传递给它后面的所有pod。一旦服务中的 Pod 集合发生更改,Endpoints 就会被更新,请求的重定向自然也会导向最新的 pod。
  • 创建一个 Deployment的示例配置文件。
# service-hellok8s-clusterip.yaml
apiVersion: v1
kind: Service
metadata:name: service-hellok8s-clusterip
spec:type: ClusterIPselector:app: hellok8sports:- port: 3000targetPort: 3000
  • 在集群中,可以通过访问 service 的 IP 来访问下面的 pods
kubectl get service

在这里插入图片描述

  • 在集群外部访问 pod的 IP
apiVersion: v1
kind: Service
metadata:name: service-hellok8s-nodeport
spec:type: NodePortselector:app: hellok8sports:- port: 3000nodePort: 30000
  • 如果 minikube使用的参数是--driver=docker,需要使用以下命令。
minikube service service-hellok8s-nodeport --url

2.4 Ingress

  • Ingress 可以“简单理解”为服务的网关 Gateway,它是所有流量的入口,经过配置的路由规则,将流量重定向到后端的服务。
  • minikube开启 Ingress-Controller功能
minikube addons enable ingress
kubectl delete deployment,service --all

在这里插入图片描述

参考资料

  • 【1】 https://k8s-tutorials.pages.dev/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/256587.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开放式黑白灰,现代风餐厨装修案例分享。福州中宅装饰,福州装修

你是否曾经遇到过这些问题:餐厅和厨房的装修风格不统一,导致整体效果不协调;收纳空间不足,导致物品杂乱无章;光线不足,导致烹饪时看不清楚食材等等。这些问题让你的生活变得不方便,甚至影响你的…

配置应用程序监听器[org.springframework.web.context.ContextLoaderListener]错误

首先查看自己的配置文件(我maven项目) web.xml(内容除了文件的配置位置外&#xff0c;是否有其他的不同) <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3…

(十五)Flask覆写wsgi_app函数实现自定义中间件

中间件 一、剖析&#xff1a; 在前面讲session部分提到过&#xff1a;请求一进来&#xff0c;Flask会自动调用应用程序对象【Flask(__name__)】的__call__方法&#xff0c;这个方法负责处理请求并返回响应&#xff08;其实如下图&#xff1a;其内部就是wsgi_app方法&#xff…

python 数据分析

数据分析 数据分析是指用适当的方法对收集的数据进行分析,提取有用信息并且形成结论. 广义的数据分析包括狭义的数据分析和数据挖掘.狭义的数据分析是指根据目的,采用对比分析,分组分析,交叉分析,回归分析等分析方法,对数据进行分析和处理,得到特征统计量的过程.数据挖掘是指…

异想天开 | 如何实现PXE可视化?批量主机PXE如何监控状态?

这个问题源于早几年前印象比较深刻的面试&#xff0c;面的岗位是UCloud的CDN运维交付岗&#xff0c;当时面试官问我&#xff0c;在批量PXE的时候怎么才能快速确认是否已经PXE成功了&#xff1f;我当时的回答是可以看dhcp服务器分配的地址数量来确定。我已经忘记了为什么我会说出…

/proc/sys/net/ipv4/ 下网络参数的理解

/proc/sys/net/ipv4/下文件详细解释&#xff1a; /proc/sys/net/ipv4/下文件 /proc/sys/net/ipv4/ip_forward 该文件表示是否打开IP转发。 0&#xff0c;禁止 1&#xff0c;转发 基本用途&#xff1a;如VPN、路由产品的利用&#xff1b; 出于安全考虑&#xff0c;Linux系…

postcss-pxtorem实现页面自适应的原理

先声明一点这玩意本身不能实现哈&#xff0c;他只是一个工具&#xff0c;更是一个postcss的插件 帮助我们从px转化成为rem比如我们的代码 div {height: 100px;width: 100px; }经过这个插件转化之后变成 假设变成下面这样哈 div {height: 1rem;width: 1rem; }其他没啥子太大作…

灯塔资产管理系统魔改版搭建(ARL-Puls)

免责声明 文章仅做经验分享用途&#xff01;利用本文章所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担&#xff01;&#xff01;&#xff01; 简介 ARL-Puls是基于斗…

网络层(1)——概述

一、概述 网络层毫无疑问是最复杂的一层&#xff0c;涉及到大量的协议与结构的内容。在如今主流的设计中&#xff0c;大家都会把网络层分成两个部分&#xff1a;数据平面、控制平面。其中数据平面指的是网络层中每台路由器的功能&#xff0c;它决定了到达路由器端口输入链路之一…

[MySQL--基础]事务的基础知识

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录&#xff1a;生活中最重要的决定就是要做出决定。 ⭐个人主页&#xff1a;欧_aita ψ(._. )>⭐个人专栏&#xff1a; 数据结构与算法 MySQL数据库 事务的目录&#x1f4d5; 前言事务简介&#x1f680;事务操作&#x1f680;准…

Spring boot 使用Redis 消息发布订阅

Spring boot 使用Redis 消息发布订阅 文章目录 Spring boot 使用Redis 消息发布订阅Redis 消息发布订阅Redis 发布订阅 命令 Spring boot 实现消息发布订阅发布消息消息监听主题订阅 Spring boot 监听 Key 过期事件消息监听主题订阅 最近在做请求风控的时候&#xff0c;在网上搜…

javaee实验:Spring Boot 整合 Mybatis

目录 MybatisMyBatis 框架简介Mybatis 框架执行流程图映射器 实验目的实验内容实验过程数据库准备项目结构代码实现 实验结果 Mybatis MyBatis 框架简介 Mybatis 的前身是 Apache 的开源框架 iBatis&#xff0c;与 Hibernate 一样是一个 Java 持久层的框 架。Mybatis 的优势在…