2024年9月114日(使用kubectl run 创建pod|配置文件创建pod)

news2024/9/21 11:54:37

一、pod

1、更改镜像站

[root@k8s-master ~]# vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
2、加载启动docker服务

[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl start docker

3、拉取常用镜像

[root@k8s-master ~]# docker pull centos
[root@k8s-master ~]# docker pull nginx
[root@k8s-master ~]# docker pull mysql:5.7.44

[root@k8s-master ~]# docker pull haproxy

[root@k8s-master ~]# docker images

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
haproxy      latest    a782c02b8259   10 days ago    103MB
nginx        latest    39286ab8a5e1   4 weeks ago    188MB
mysql        5.7.44    5107333e08a8   9 months ago   501MB
centos       latest    5d0da3dc9764   2 years ago    231MB
4、使用docker save命令打包镜像

[root@k8s-master ~]# docker save -o centos.tar centos:latest
[root@k8s-master ~]# docker save -o nginx.tar nginx:latest
[root@k8s-master ~]# docker save -o haproxy.tar haproxy:latest
[root@k8s-master ~]# docker save -o mysql.tar mysql:5.7.44

5、使用ctr指令将tar包导入到containerd镜像中

[root@k8s-master ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64

[root@k8s-master ~]# ctr -n k8s.io images import nginx.tar --platform=linux/amd64

[root@k8s-master ~]# ctr -n k8s.io images import haproxy.tar --platform=linux/amd64

[root@k8s-master ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64

[root@k8s-master ~]# crictl images  查看containerd镜像列表

IMAGE                                                                         TAG                 IMAGE ID            SIZE
docker.io/library/centos                                                      latest              5d0da3dc97646       239MB
docker.io/library/haproxy                                                     latest              a782c02b82595       106MB
docker.io/library/mysql                                                       5.7.44              5107333e08a87       520MB
docker.io/library/nginx                                                       latest              39286ab8a5e14       192MB
6、将master上的tar包上传到node节点上

[root@k8s-master ~]# scp /etc/docker/daemon.json root@192.168.8.203:/etc/docker/

[root@k8s-master ~]# scp /etc/docker/daemon.json root@192.168.8.204:/etc/docker/

scp ~/*.tar root@192.168.8.203:~

scp ~/*.tar root@192.168.8.204:~
[root@k8s-master ~]# scp haproxy.tar root@192.168.8.203:/
[root@k8s-master ~]# scp haproxy.tar root@192.168.8.203:~/
[root@k8s-master ~]# scp haproxy.tar root@192.168.8.204:~/   
[root@k8s-master ~]# scp nginx.tar root@192.168.8.204:~/   
[root@k8s-master ~]# scp nginx.tar root@192.168.8.203:~/  
[root@k8s-master ~]# scp mysql.tar root@192.168.8.203:~/   
[root@k8s-master ~]# scp mysql.tar root@192.168.8.204:~/
[root@k8s-master ~]# scp centos.tar root@192.168.8.204:~/
[root@k8s-master ~]# scp centos.tar root@192.168.8.203:~/

[root@k8s-node1 ~]# systemctl daemon-reload

[root@k8s-node1 ~]# systemctl restart docker
[root@k8s-node2 ~]# systemctl daemon-reload
[root@k8s-node2 ~]# systemctl restart docker

7、使用ctr指令将tar包导入到containerd镜像中

[root@k8s-node1 ~]# ctr -n k8s.io images import haproxy.tar --platform=linux/amd64
[root@k8s-node1 ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64
[root@k8s-node1 ~]# ctr -n k8s.io images import nginx.tar --platform=linux/amd64
[root@k8s-node1 ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64

[root@k8s-node1 ~]# crictl images
IMAGE                                                            TAG                 IMAGE ID            SIZE
docker.io/library/centos                                         latest              5d0da3dc97646       239MB
docker.io/library/haproxy                                        latest              a782c02b82595       106MB
docker.io/library/mysql                                          5.7.44              5107333e08a87       520MB
docker.io/library/nginx                                          latest              39286ab8a5e14       192MB

--platform=linux/amd64 指定版本

[root@k8s-node2 ~]# ctr -n k8s.io images import haproxy.tar --platform=linux/amd64
[root@k8s-node2 ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64
[root@k8s-node2 ~]# ctr -n k8s.io images import nginx.tar --platform=linux/amd64
[root@k8s-node2 ~]# ctr -n k8s.io images import mysql.tar --platform=linux/amd64

[root@k8s-node2 ~]# crictl images
IMAGE                                                            TAG                 IMAGE ID            SIZE
docker.io/library/centos                                         latest              5d0da3dc97646       239MB
docker.io/library/haproxy                                        latest              a782c02b82595       106MB
docker.io/library/mysql                                          5.7.44              5107333e08a87       520MB
docker.io/library/nginx                                          latest              39286ab8a5e14       192MB
8、使用kubectl run 创建pod

[root@k8s-master ~]# kubectl run test001 --image docker.io/library/nginx:latest --image-pull-policy=IfNotPresent

[root@k8s-master ~]# kubectl get po
NAME                             READY   STATUS      RESTARTS      AGE
test001                          1/1     Running     0             8s

[root@k8s-master ~]# kubectl describe pod test001
 

Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  2m6s  default-scheduler  Successfully assigned default/test001 to k8s-node2
  Normal  Pulled     2m5s  kubelet            Container image "docker.io/library/nginx:latest" already present on machine
  Normal  Created    2m5s  kubelet            Created container test001
  Normal  Started    2m5s  kubelet            Started container test001
 9、使用配置文件创建pod

[root@k8s-master ~]# vim test0007.yaml
 

apiVersion: v1
kind: Pod
metadata:
        name: test0007
        labels:
                name: test0007
spec:
        containers:
        -       name: test0007nginx
                image: docker.io/library/nginx:latest
                imagePullPolicy: IfNotPresent
                ports:
                -       name: nginxport
                        containerPort: 80

root@k8s-master ~]# mv test0007.yaml pods/
[root@k8s-master ~]# cd pods/

创建pod

[root@k8s-master pods]# kubectl create -f test0007.yaml 

[root@k8s-master pods]# kubectl get po

NAME                             READY   STATUS    RESTARTS      AGE
test0007                         1/1     Running   0             106s
10、添加两个容器再pod中

[root@k8s-master pods]# vim test0007.yaml 

                -       name: nginxport
                        containerPort: 80
        -       name: test0007centos
                image: docker.io/library/centos:latest
                imagePullPolicy: Never
                command:
                - sleep
                - infinity

[root@k8s-master pods]# kubectl delete -f test0007.yaml 
[root@k8s-master pods]# kubectl create -f test0007.yaml 

[root@k8s-master pods]# kubectl get po

NAME                             READY   STATUS    RESTARTS      AGE
test0007                         2/2     Running   0             77s
11、监控容器运行的5个切入点

postStart

startup

lived

ready

perStop

[root@k8s-master pods]# vim test0007.yaml 

apiVersion: v1
kind: Pod
metadata:
        name: test0007
        labels:
                name: test0007
spec:
        restartPolicy: OnFailure
        containers:
        -       name: test0007nginx
                image: docker.io/library/nginx:latest
                imagePullPolicy: IfNotPresent
                ports:
                -       name: nginxport
                        containerPort: 80
                startupProbe:
                        tcpSocket:
                                port: 80
                        initialDelaySeconds: 10
                        timeoutSeconds: 2
                        periodSeconds: 20
                        successThreshold: 1
                        failureThreshold: 2
                readinessProbe:
                        httpGet:
                                port: 80
                                path: /index.html
                        initialDelaySeconds: 10
                        timeoutSeconds: 2
                        periodSeconds: 20
                        successThreshold: 1
                        failureThreshold: 2
                livenessProbe:
                        tcpSocket:
                                port: 80
                        initialDelaySeconds: 10
                        timeoutSeconds: 2
                        periodSeconds: 20
                        successThreshold: 1
                        failureThreshold: 2
        -       name: test0007centos
                image: docker.io/library/centos:latest
                imagePullPolicy: Never
                command:
                - sleep
                - infinity

[root@k8s-master pods]# kubectl delete -f test0007.yaml 

[root@k8s-master pods]# kubectl create -f test0007.yaml 
[root@k8s-master pods]# kubectl get po

NAME                             READY   STATUS    RESTARTS         AGE
test0007                         2/2     Running   0                52s
12、配置生命周期

[root@k8s-master pods]# vim test0007.yaml 

 41                 lifecycle:
 42                         postStart:
 43                                 exec:
 44                                         command:
 45                                         - sh
 46                                         - -c
 47                                         - mkdir /data
 48                         preStop:
 49                                 exec:
 50                                         command:
 51                                         - sh
 52                                         - -c
 53                                         - pkill nginx;sleep 30;

[root@k8s-master pods]# kubectl delete -f test0007.yaml 
[root@k8s-master pods]# kubectl create -f test0007.yaml 

[root@k8s-master pods]# kubectl get po
NAME                             READY   STATUS    RESTARTS       AGE
test0007                         2/2     Running   0              35s

二、RC 和 RS 

1、定义 Replication Controller

[root@k8s-master pods]# vim test0008.yaml


  1 apiVersion: v1
  2 kind: ReplicationController
  3 metadata:
  4         name: nginx0
  5 spec:
  6         replicas: 3
  7         selector:
  8                 app: nginx0
  9         template:
 10                 metadata:
 11                         name: nginx0
 12                         labels:
 13                                 app: nginx0
 14                 spec:
 15                         containers:
 16                         -       name: nginx0
 17                                 image: docker.io/library/nginx:latest
 18                                 imagePullPolicy: Never
 19                                 ports:
 20                                 -       name: containerport
 21                                         containerPort: 80

[root@k8s-master pods]# kubectl create -f test0008.yaml 

[root@k8s-master pods]# kubectl get po

NAME                             READY   STATUS    RESTARTS       AGE
nginx0-8pmtv                     1/1     Running   0              17s
nginx0-gpvxm                     1/1     Running   0              17s
nginx0-z66zz                     1/1     Running   0              17s

删除其中一个会再次自动创建

[root@k8s-master pods]# kubectl delete pod nginx0-gpvxm  

[root@k8s-master pods]# kubectl get po

NAME                             READY   STATUS    RESTARTS       AGE
nginx0-8kxfb                     1/1     Running   0              6s
nginx0-8pmtv                     1/1     Running   0              96s
nginx0-z66zz                     1/1     Running   0              96s

 [root@k8s-master pods]# kubectl get po -o wide

NAME                             READY   STATUS    RESTARTS       AGE     IP               NODE        NOMINATED NODE   READINESS GATES
nginx0-8kxfb                     1/1     Running   0              3m20s   172.16.169.148   k8s-node2   <none>           <none>
nginx0-8pmtv                     1/1     Running   0              4m50s   172.16.169.146   k8s-node2   <none>           <none>
nginx0-z66zz                     1/1     Running   0              4m50s   172.16.36.84     k8s-node1   <none>           <none>

[root@k8s-master pods]# curl 172.16.169.146

[root@k8s-master pods]# kubectl delete -f test0008.yaml 

[root@k8s-master pods]# vim test0009.yaml

   1 apiVersion: apps/v1
  2 kind: ReplicaSet
  3 metadata:
  4         name: nginx1
  5 spec:
  6         replicas: 3
  7         selector:
  8                 matchLabels:
  9                         tier: nginx1
 10                 matchExpressions:
 11                 - key: tier
 12                   operator: In
 13                   values: [nginx1]
 14         templete:
 15                 metadata:
 16                         name: nginx1
 17                         labels:
 18                                 app: guestbook
 19                                 tier: nginx1
 20                 spec:
 21                         #restartPolicy: OnFailure
 22                         containers:
 23                         -       name: nginx1
 24                                 image: docker.io/library/nginx:latest
 25                                 imagePullPolicy: Never
 26                                 ports:
 27                                 -       name: nginxport
 28                                         containerPort: 80

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将本地项目上传到GitHub(SSH连接)

在个人GitHub中新建项目(远程仓库)&#xff0c;添加一个README文件&#xff0c;方便后面验证 记住这个默认分支&#xff0c;我这里是main&#xff0c;你的可能是master或其他 先复制下SSH地址 在项目文件夹中右键打开Git命令行 初始化本地仓库&#xff0c;同时指定默认分支为ma…

MyBatis 面试题11-27

11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的? 都有哪些映射形式&#xff1f; Mybatis 在执行 SQL 查询后&#xff0c;会将结果集封装为目标对象并返回。这主要依赖于 Mybatis 的映射机制&#xff0c;它提供了两种主要的映射形式&#xff1a; 第一种&#xff1…

【触想智能】工控一体机在船舶航运上应用的优势和应用场景分析

随着船舶航运业的发展&#xff0c;工控一体机在船舶航运领域上的应用越来越广泛。工控一体机的功能和性能可以加强船舶航运领域的自动化和智能化水平。 下面&#xff0c;触想智能小编针对工控一体机在船舶航运领域上应用的优势和应用场景进行简单分析&#xff0c;给大家借鉴参考…

LVGL控件之表格(lv_table)

目录 一、概述二、表格1、设置单元格的值2、行和列的设置3、宽度和高度的设置4、合并单元格5、滚动6、事件7、API 函数 一、概述 Table&#xff08;表格&#xff09;是由包含文本的行、列和单元格构建的。 表格对象非常轻量级&#xff0c;因为仅存储文本。没有为各个单元格创…

Altium Designer常用操作备忘笔记

Altium Designer常用操作备忘笔记 Chapter1 Altium Designer常用操作备忘笔记Chapter2 Altium Designer 22.1.2使用总结&#xff08;常更&#xff09;一、原理图1.1 绘制元器件原理图1.2 绘制元器件封装1.3 修改原理图网格1.4 修改原理图库后更新当前原理图1.5 旋转和翻转1.6 悬…

Leetcode Hot 100刷题记录 -Day15(螺旋矩阵)

螺旋矩阵 问题描述&#xff1a; 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输…

104. 二叉树的最大深度【 力扣(LeetCode) 】

零、LeetCode 原题 104. 二叉树的最大深度 一、题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二、测试用例 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出…

[git] MacBook 安装git

文章目录 1.Mac Git 安装2. 开发者工具安装 CommandLineTools安装完成&#xff0c;错误解决 3. git 账户配置账户设置生成秘钥git 或者 gitee 仓库添加公钥查看全局账户命令多账户设置config文件测试连接clone到本地 1.Mac Git 安装 Mac一般自带Git工具&#xff0c;也就是说已…

监听html元素是否被删除,删除之后重新生成被删除的元素

/*** 监听水印是否清除和修改*/ export function watermarkClear() {// 添加水印的盒子let box: any document.querySelector(.dplayer-video-wrap)// 水印let watermark: any document.querySelector(.dplayer-logo)// 观察器的配置&#xff08;需要观察什么变动&#xff09…

css scrollbar-width: none 隐藏默认滚动条

.table-box{ flex: 1; overflow-y: scroll; scrollbar-width: none;} scrollbar-width: none; 隐藏默认滚动条

计算机二级自学笔记(程序题1部分)

(1)b fun函数内a数组作为参数&#xff0c;下方提供了b函数作为中间数组所以在这进行初始化 (2)2 第二个循环内将a数组分为1-27与27-55两部分&#xff0c;1-27存放在b数组的奇数位&#xff0c;27-55存放在b数组的偶数位 (3)a[k] 将b数组传递回数组a nm mn 已经有的参数…

使用 PyTorch 构建 MNIST 手写数字识别模型

引言 MNIST 数据集是一个经典的机器学习数据集&#xff0c;包含了 70,000 张手写数字图像&#xff0c;其中 60,000 张用于训练&#xff0c;10,000 张用于测试。每张图像都是 28x28 像素的灰度图像&#xff0c;并且已经被居中处理以减少预处理步骤。本文将介绍如何使用 PyTorch…

剪辑必备,6个可白嫖的视频素材网站。

找视频素材就上这6个网站&#xff0c;免费下载&#xff0c;赶紧收藏好&#xff01; 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 菜鸟图库网素材非常丰富&#xff0c;网站主要以设计类素材为主&#xff0c;高清视频素材也很多&#xff0c;像风景、植物、动物、人物、科技…

Redis(主从复制、哨兵模式、集群)概述及部署测试

目录 一、Redis 主从复制 1.1、Redis 主从复制概念 1.2、主从复制的作用 1.3、主从复制流程 1.4、搭建Redis 主从复制 二、Redis 哨兵模式 2.1、Redis 哨兵模式概念 2.2、哨兵模式原理 2.3、哨兵模式的作用 2.4、哨兵模式的结构 2.5、故障转移机制 2.6、主节点的选…

性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法

关于性能诊断的方法&#xff0c;我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手&#xff0c;包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么&#xff0c;这里我们归纳了自上而下的资源…

从安装ffmpeg开始,把一个视频按照每秒30帧fps剪切为图片

ffmpeg -i demo.mp4 -vf fps1 -start_number 0 %5d.jpg没有ffmpeg 的去官网下载&#xff0c; ffmpeg.org/download.html 下载好之后&#xff0c;解压进入bin文件夹 复制当前路径&#xff0c;下一步 配置环境 进入本机环境变量&#xff0c;把地址添加到path中 之后进入anacond…

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 Vue3)

Vue - 详细介绍vue-qr在线生成二维码组件&#xff08;Vue2 & Vue3&#xff09; 在对于二维码生成中有许多组件&#xff0c;下面介绍关于自定义比较高的vue-qr组件&#xff0c;能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。 一…

为什么企业可以通过数据产品实现商业价值

管理者们通常希望可以通过数据洞悉更精准的商业趋势。 根据 Gartner 2023 年的调查显示&#xff0c;有69%的数据分析师或数据管理者们&#xff0c;仍在努力通过数据分析&#xff0c;希望实现可衡量的投资回报率&#xff0c;而数据产品是实现这一难题的重要解决方案之一。 什么…

USBCANFD卡在新能源BMS上位机的应用

使用简明教程&#xff1a;插入一个视频 USBCANFD-401是一款高性能的USB转双路CANFD/LIN的CANFD盒&#xff0c;支持单路CNA(FD)和LIN转USB通信。 通过USB接口快速接入CANFD或LIN通道&#xff0c;使接入CAN/CANFD/LIN网络变得轻松便捷。该设备采用金升阳电源模块和信号隔离芯片&…

GAMES101(2~3作业)

作业2 基础题目&#xff1a; 栅格化&#xff1a;在屏幕绘制一个实心三角形&#xff0c;函数 rasterize_triangle(const Triangle& t)&#xff0c;需要找出当前三角形的边界框&#xff0c;然后遍历像素&#xff0c;查找当前像素是否在三角形内static bool insideTriangle(…