Kubernetes 核心实战之一(精华篇 1/2)

文章目录

    • 1,资源创建方式
      • 1.1 yaml
      • 1.2 命令行
    • 2,NameSpace命名空间
      • 2.1 命令行创建ns
      • 2.2 yaml 创建ns
    • 3,Pod
      • 3.1 命令行 创建pod
      • 3.2 yaml 创建pod
      • 3.3 可视化界面 创建
        • 3.3.1 Pod nginx
        • 3.3.2 Pod nginx + tomcat
        • 3.3.3 Pod 2ngnix

1,资源创建方式

1.1 yaml

用 yaml 配置 在 kubernetes 中创建资源

kubectl apply -f xxxx.yaml

Kubernetes 集群搭建时候,创建资源的方式,大部分用的yaml的方式去创建资源。

1.2 命令行

用 命令行 在 kubernetes 中创建资源

# 查看所有命名空间
kubectl get ns
# 创建命名空间
kubectl create ns xxx
# 删除命名空间
kubectl delete ns xxx

2,NameSpace命名空间

NameSpace(命名空间):用来对集群资源进行划分;默认只隔离资源,不隔离网络。 (-n)
在这里插入图片描述
在这里插入图片描述
其中kube-nod-lease、kube-public、kube-system 命名空间在安装 kubernetes 时自身自带的命名空间,
kubernetes-dashboard 命名空间是在安装了 dashboard 时候创建的。
在这里插入图片描述
在yaml中就指定了命名空间kubernetes-dashboard。

2.1 命令行创建ns

# 查看命名空间
kubectl get ns

# 查看 部署了哪些应用
kubectl get pods -A
# 查看 默认命名空间(default)部署的应用
kubectl get pods

# 查看 某个命名空间(kubernetes-dashboard)部署的应用
kubectl get pod -n kubernetes-dashboard

# 创建命名空间
kubectl create ns hello
# 删除命名空间
kubectl delete ns hello

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

2.2 yaml 创建ns

  • hello-yaml.yaml
# 版本号
apiVersion: v1
# 类型
kind: Namespace
# 元数据
metadata:
  # Namespace(命名空间) 的 名称
  name: hello-yaml
  • yaml 创建 Namespace
vi hello-yaml.yaml

# 将上述内容 粘贴进 hello-yaml.yaml

kubectl apply -f hello-yaml.yaml

kubectl get ns
# kubectl delete ns hello-yaml
# 配置文件创建的资源 用配置文件 删
kubectl delete -f hello-yaml.yaml

在这里插入图片描述

3,Pod

Pod:运行的一组容器,是 kubernetes 找那个应用的最小单位。(工作负载)
在这里插入图片描述

docker ps -a

kubectl get pod -A

# 查看 每个 Pod 分配的 IP,IP 范围 在下图配置的
kubectl get pod -owide

在这里插入图片描述
查看 每个 Pod 分配的 IP 范围设置

在这里插入图片描述

3.1 命令行 创建pod

# mynginx 是自定义的名称,nginx 镜像; 默认到 default 命名空间
kubectl run mynginx-k8s --image=nginx

kubectl get pods -A

# 默认 命名空间
kubectl get pods

# STATUS 是 ContainerCreating 的,查看进度(Events 属性)
kubectl describe pod mynginx-k8s

# 在 3 个 Xshell 终端中 (查看在哪个 节点服务器上 运行着)
docker ps

# 删除 Pod(默认的命名空间),kubectl delete pod mynginx-k8s -n 命名空间  (非默认命名空间)
kubectl delete pod mynginx-k8s

kubectl get pods

在这里插入图片描述
稍等一会儿pod开始running状态了。
在这里插入图片描述

3.2 yaml 创建pod

  • mynginx-yaml.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx-yaml
  # Pod 的 名字  
  name: mynginx-yaml
  # 指定命名空间 (不写是 默认 default)
  namespace: default
spec:
  containers:
  # 多个 容器,多个 - 
  - image: nginx
    # 容器的名字
    name: mgninx-yaml
  • yaml 创建 Pod
vi mynginx-yaml.yaml

# 将上述内容 粘贴进来

kubectl apply -f mynginx-yaml.yaml

kubectl get pod
kubectl describe pod mynginx-yaml

# 配置文件创建的资源 用配置文件 删
kubectl delete -f mynginx-yaml.yaml

在这里插入图片描述

查看创建过程的事件
在这里插入图片描述

3.3 可视化界面 创建

小知识: 左边菜单 有 N 标注的, 是需要 命名空间的
在这里插入图片描述

3.3.1 Pod nginx

在这里插入图片描述
可视化页面 上传 yaml 创建 Pod

在这里插入图片描述

来到 Pod栏 查看 创建的 Pod

在这里插入图片描述
进入到pod

kubectl get pods -A -owide

# mynginx-yaml 是 Pod Name
kubectl exec -it mynginx-yaml 是 Pod Name -- /bin/bash

whereis nginx
cd /usr/share/nginx/html/
echo "hello tigerhhzz welcome to k8s ngnix" > index.html
# Ctrl P + Q 退出

# 查看的 映射的IP,输出 hello k8s ngnix
curl 192.168.140.69:80

在这里插入图片描述
可以在 dashboard 页面,右边, 下拉选点击 执行。
在这里插入图片描述
在这里插入图片描述
dashboard 页面 进入终端 修改
在这里插入图片描述
访问 nginx 首页,修改成功

总结
k8s 给 每一个pod 分配 IP,IP网段是在 3.3.5.2 初始化主节点中 中 设置的
–pod-network-cidr=192.168.0.0/16
集群中的任意一个机器以及 任意的应用 都能通过 Pod 分配的 IP 来访问 Pod,只能在集群内访问,
如果要在集群外访问,暴露 k8s 端口 和 安全组。

3.3.2 Pod nginx + tomcat

下面是 1 个 Pod 里面 有 2 个 容器(nginx 和 tomcat)

  • multicontainer-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: myapp
  # Pod 的 名字  
  name: myapp
  # 指定命名空间 (不写是 默认 default)
  namespace: default
spec:
  containers:
  # 多个 容器,多个 - 
  - image: nginx
    # 容器的名字
    name: myngnix
  - image: tomcat:8.5.68
    name: mytomcat
vi multicontainer-pod.yaml

# 将上述内容 粘贴进来

kubectl apply -f multicontainer-pod.yaml

kubectl get pod
kubectl describe pod myapp

# 配置文件创建的资源 用配置文件 删
kubectl delete -f multicontainer-pod.yaml

在这里插入图片描述
Ready 是 0 / 2了。 有2个 容器(nginx 和 tomcat),稍等一会儿,等两个容器创建完毕,状态变为running。

kubectl get pod 
kubectl get pods -owide

curl ip:80
curl ip:8080  # 这个会404,但后面是 apache tomcat 打印出来的

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

在 同一个 Pod 共享一个 网络空间、共享网络存储。
在 可视化界面上, ngnix 中 curl 127.0.0.1:8080;tomcat 中 127.0.0.1:80 ;都是可以的。
在这里插入图片描述
nginx 中访问
在这里插入图片描述
tomcat 中访问
在这里插入图片描述

3.3.3 Pod 2ngnix
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: myapp-2
  # Pod 的 名字  
  name: myapp-2
  # 指定命名空间 (不写是 默认 default)
  namespace: default
spec:
  containers:
  - image: nginx
    name: myngnix01
  - image: nginx
    name: myngnix02

在这里插入图片描述
创建 Pod

在这里插入图片描述
查看 Pod 列表

在这里插入图片描述
第二个 启动失败:原因是端口被占用!!!

稍等一会儿,1 / 2 状态是 ERROR, 端口冲突了

kubectl get pods

# 看 Events 轨迹
kubectl describe pod myapp-2

在这里插入图片描述
在这里插入图片描述
dashboard 页面 也可以看到 Events
在这里插入图片描述
查看 Pod 日志
在这里插入图片描述
在这里插入图片描述

查看 mynginx02 启动日志,发现 80端口被占用。

然后把这个 删掉,用 deployment 解决。
在这里插入图片描述
删掉 Pod myapp-2
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

日文游戏翻译 ,如何做好本地化翻译?

相关调查显示,日本游戏占据全球游戏市场约20%的份额,其销量一直都不错。市场上对于日语游戏翻译的需求也很大。那么,针对日文游戏翻译,如何做好本地化翻译? 首先、做好语言和文化上的本地化。这要求译员从翻译的文本到…

一篇关于大模型在信息抽取(实体识别、关系抽取、事件抽取)的研究进展综述

信息提取(IE)旨在从普通自然语言文本中提取结构化知识(如实体、关系和事件)。最近,生成式大型语言模型(LLMs)展现了在文本理解和生成方面的卓越能力,使得它们能够广泛应用于各种领域…

VINS-MONO拓展1----手写后端求解器,LM3种阻尼因子策略,DogLeg,构建Hessian矩阵

文章目录 0. 目标及思路1. 非线性优化求解器2. 基于VINS-MONO的Marginalization框架构建Hessian矩阵2.1 estimator.cpp移植2.2 solve.cpp/preMakeHessian()2.3 solve.cpp/makeHessian() 3. solve.cpp/solveLinearSystem()求解正规方程4. 更新状态5. 迭代求解6. EVO评估结果7. 待…

Certum ev多域名证书的优势

多域名证书作为一种能够为多个域名提供安全保护的证书类型,越来越受到企业的青睐。Certum作为一个成立了二十几年的CA认证机构,旗下的EV多域名SSL证书产品已经保护了多家企业的网站。Certum旗下的EV多域名证书作为一种能够为多个域名提供安全保护的证书类…

《Linux C编程实战》笔记:实现自己的myshell

ok,考完试成功复活 这次是自己的shell命令程序的示例 流程图: 关键函数 1.void print_prompt() 函数说明:这个函数打印myshell提示符,即“myshell$$”. 2.void get_input(char *buf) 函数说明:获得一条指令&#…

Dora-rs 机器人框架学习教程(1)—— Dora-rs安装

1、dora简介 Dora-rs[1] 是一个基于 Rust 实现的化机器人框架,其具有极高的实时性能。Dora-rs使用Rust语言做数据流的传输和调度管理,可以大大减少了数据的重复拷贝和传输。它提供了Rust语言和Python语言之间的无缝集成,减少了跨语言的性能代…

C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信

前言 一直以来上位软件比如C等和西门子等其他品牌PLC之间的数据交换都是大家比较头疼的问题,尤其是C上位软件程序员。传统的方法一般有OPC、Socket 等,直到LibModbus 开源库出现后这种途径对程序袁来说又有了新的选择。 Modbus简介 Modbus特点 1 &#…

高压继电器,未来几年市场将保持稳定增长

高压继电器是一种用于控制大功率电气设备的开关装置,广泛应用于电力系统、轨道交通、工业自动化等领域。随着各行业对电气控制需求的不断增加,高压继电器市场也在不断扩大。全球高压继电器市场分析: 在全球市场中,目前主要的高压继…

拒绝纸张浪费,Paperless-ngx开源文档管理系统将纸质版转换成可搜索的电子版档案

GitHub:GitHub - paperless-ngx/paperless-ngx: A community-supported supercharged version of paperless: scan, index and archive all your physical documents 在线演示:https://demo.paperless-ngx.com 官网:https://docs.paperless-n…

【力扣100】46.全排列

添加链接描述 class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 思路是使用回溯if not nums:return []def dfs(path,depth,visited,res):# 出递归的条件是当当前的深度已经和nums的长度一样了,把path加入数组,然后出递归if …

手机流量卡推广分销网站php源码,多功能的号卡推广分销管理系统

源码简介 拥有多个接口,包括运营商接口,并支持无限三级代理。 最简单易用的PHP系统,它自带自动安装向导,可以让你轻松安装和部署。 该系统集成了多个第三方接口资源,能够满足你的不同需求。采用全系统双色主题&…

Python 自学(二) 之流程控制语句

目录 1. if ... elif ... else 语句 P62 2. True False 3. for 数值循环 in range() P69 4. for 遍历字符串,列表,元组,集合和字典 in obj P70 5. pass 空语句 1. if ... elif ... else 语句 P62 每个判断语句后面要加 :elif …

机器学习中的监督学习基本算法-逻辑回归简单介绍

逻辑回归 逻辑回归(Logistic Regression)是一种用于解决二分类问题的统计学习方法,尽管名字中带有"回归"一词,但实际上它是一种分类算法。逻辑回归的主要目标是通过学习从输入特征到一个离散的输出(通常是0…

log4cplus visual c++ 编译及调试小记

简介 最近在调试一款SATA加密设备,发现设备有时加密出来的数据,再解密时与明文对不上,怀疑是通信问题。因此,急需要在测试工具中加入通信日志。由于对第三方日志库都不熟悉,所以随便选了个log4cplus软件集成到现有工具…

以STM32为例,实现按键的短按和长按

以STM32为例,实现按键的短按和长按 目录 以STM32为例,实现按键的短按和长按1 实现原理2 实现代码3 测试结束语 1 实现原理 简单来说就是通过设置一个定时器来定时扫描几个按键的状态,并分别记录按键按下的持续时间,通过时间的长短…

百度百科词条创建多久可以通过?

一个优质的百度百科词条,能提升个人或企业的品牌形象。因此,越来越多的人希望创建自己的百度百科词条,那么,创建一个百度百科词条到底需要多久才能通过审核呢?接下来伯乐网络传媒就来给大家分享一下。 一、百度百科词条…

【Qt之Quick模块】7. Quick基础、常用组件Item、Rectangle、Text、TextInput、TextEdit等

1. 概述 Qt Quick模块是编写QML应用程序的标准库。Qt QML模块提供QML引擎和语言基础结构,Qt Quick模块提供用QML创建用户界面所需的所有基本类型。它提供了一个可视化画布,包括用于创建和动画化可视化组件、接收用户输入、创建数据模型和视图以及延迟对…

静态网页设计——海贼王

前言 使用前端经典三件套HTMLCSSJS实现的海贼王静态网页课程设计,适合我们的童年! 主要内容 首页 首页最上方有一个轮播图,可以自动切换图片,使用js实现。 轮播图往下,就是列出一些比较经典的海贼王影片&#xf…

2023年度最热 AI 应用 TOP 50,除了 ChatGPT 还有这么多宝藏

原文章链接:年度最热 AI 应用 TOP 50,除了 ChatGPT 还有这么多宝藏 - IT之家 更多消息:AI人工智能行业动态,aigc应用领域资讯 在 AI 工具激烈竞争的一年中,尽管ChatGPT在访问量上遥遥领先,但单次使用时长未…

Python之字符编码汇总

一、常见编码 ASCII:ASCII码即美国标准信息交换码(American Standard Code for Information Interchange)。由于计算机内部所有信息最终都是一个二进制值,而每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以…