2024.9.14(RC和RS)
一、replicationcontroller (RC)
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
6、查看containerd镜像列表
[root@k8s-master ~]# 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
7、在node1和node2节点上引入tar包
[root@k8s-master ~]# scp /etc/docker/daemon.json root@192.168.8.178:/etc/docker/
[root@k8s-master ~]# scp ~/*.tar root@192.168.8.178:~/
[root@k8s-master ~]# scp mysql.tar root@192.168.8.178:~/
[root@k8s-master ~]# scp nginx.tar root@192.168.8.178:~/
[root@k8s-master ~]# scp haproxy.tar root@192.168.8.178:~/
[root@k8s-master ~]# scp centos.tar root@192.168.8.178:~/
[root@k8s-master ~]# scp /etc/docker/daemon.json root@192.168.8.168:/etc/docker/[root@k8s-master ~]# scp ~/*.tar root@192.168.8.168:~/
[root@k8s-master ~]# scp centos.tar root@192.168.8.168:~/
[root@k8s-master ~]# scp haproxy.tar root@192.168.8.168:~/
[root@k8s-master ~]# scp nginx.tar root@192.168.8.168:~/
[root@k8s-master ~]# scp mysql.tar root@192.168.8.168:~/[root@k8s-node2 ~]# systemctl daemon-reload
[root@k8s-node2 ~]# systemctl start docker[root@k8s-node1 ~]# systemctl daemon-reload
[root@k8s-node1 ~]# systemctl start docker[root@k8s-node2 ~]# ctr -n k8s.io images import mysql.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 haproxy.tar --platform=linux/amd64
[root@k8s-node2 ~]# ctr -n k8s.io images import centos.tar --platform=linux/amd64
[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
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 84s[root@k8s-master ~]# kubectl describe pod test001
[root@k8s-master ~]# kubectl describe pod test001Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 2m26s default-scheduler Successfully assigned default/test001 to k8s-node1Normal Pulled 2m25s kubelet Container image "docker.io/library/nginx:latest" already present on machineNormal Created 2m25s kubelet Created container test001Normal Started 2m25s kubelet Started container test001
9、使用配置文件创建pod
[root@k8s-master ~]# vim test0007.yaml
apiVersion: v1 kind: Pod metadata:name: test0007labels:name: test0007 spec:containers:- name: test0007nginximage: docker.io/library/nginx:latestimagePullPolicy: IfNotPresentports:- name: nginxportcontainerPort: 80[root@k8s-master ~]# mv test0007.yaml pods/
[root@k8s-master ~]# cd pods/[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 4s
10、添加两个容器
[root@k8s-master pods]# kubectl delete -f test0007.yaml
[root@k8s-master pods]# vim test0007.yamlapiVersion: v1 kind: Pod metadata:name: test0007labels:name: test0007 spec:containers:- name: test0007nginximage: docker.io/library/nginx:latestimagePullPolicy: IfNotPresentports:- name: nginxportcontainerPort: 80- name: test0007centosimage: docker.io/library/centos:latestimagePullPolicy: Nevercommand:- sleep- infinity[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 9s
11、监控容器运行的5个切入点
postStart startup lived ready perStop
12、replicationcontroller (RC)
[root@k8s-master pods]# kubectl delete -f test0007.yaml
[root@k8s-master pods]# vim test0007.yaml
# 版本 apiVersion: v1 # 类型 kind: Pod # 数据 metadata:name: test0007labels:name: test0007 #信息 spec:# 重启策略restartPolicy: OnFailurecontainers:- name: test0007nginximage: docker.io/library/nginx:latestimagePullPolicy: IfNotPresentports:- name: nginxportcontainerPort: 80startupProbe:tcpSocket:port: 80initialDelaySeconds: 10timeoutSeconds: 2 #超时periodSeconds: 20successThreshold: 1failureThreshold: 2readinessProbe:httpGet:port: 80path: /index.htmlinitialDelaySeconds: 10timeoutSeconds: 2periodSeconds: 20successThreshold: 1failureThreshold: 2livenessProbe:tcpSocket:port: 80initialDelaySeconds: 10timeoutSeconds: 2periodSeconds: 20successThreshold: 1failureThreshold: 2- name: test0007centosimage: docker.io/library/centos:latestimagePullPolicy: Nevercommand:- sleep- infinity[root@k8s-master pods]# kubectl create -f test0007.yaml
[root@k8s-master pods]# vim test0007.yaml
41 lifecycle:42 postStart:43 exec:44 command:45 - sh46 - c47 - mkdir /data48 preStop:49 exec:50 command:51 - sh52 - c53 - 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]# vim test0008.yaml
apiVersion: v1 kind: ReplicationController metadata:name: nginx0 spec:replicas: 3selector:app: nginx0# 模板template:# pod 源数据metadata:# pod名称name: ngixn0# pod标签labels:app: nginx# pod详细信息spec:containers:- name: nginx0image: docker.io/library/nginx:l atestimagePullPolicy: Neverports:- name: containerportcontainerPort: 80[root@k8s-master pods]# kubectl create -f test0008.yaml
replicationcontroller/nginx0 created
[root@k8s-master pods]# kubectl get poNAME READY STATUS RESTARTS AGE cluster-test1-54575cf56c-46mb4 1/1 Running 3 (51m ago) 3h59m nginx0-25xpx 1/1 Running 0 14s nginx0-49n2k 1/1 Running 0 14s nginx0-6lzvw 1/1 Running 0 14s[root@k8s-master pods]# kubectl delete pod nginx0-49n2k //删除后会自动创建
pod "nginx0-49n2k" deleted
[root@k8s-master pods]# kubectl get poNAME READY STATUS RESTARTS AGE cluster-test1-54575cf56c-46mb4 1/1 Running 3 (52m ago) 4h nginx0-25xpx 1/1 Running 0 103s nginx0-6lzvw 1/1 Running 0 103s nginx0-gf22s 1/1 Running 0 3s [root@k8s-master pods]# kubectl get po -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cluster-test1-54575cf56c-46mb4 1/1 Running 3 (54m ago) 4h2m 172.16.36.77 k8s-node1 <none> <none> nginx0-25xpx 1/1 Running 0 3m23s 172.16.36.81 k8s-node1 <none> <none> nginx0-6lzvw 1/1 Running 0 3m23s 172.16.169.141 k8s-node2 <none> <none> nginx0-gf22s 1/1 Running 0 103s 172.16.169.143 k8s-node2 <none> <none>[root@k8s-master pods]# curl http://172.16.36.81:80
[root@k8s-master pods]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% k8s-master 159m 7% 1147Mi 66% k8s-node1 50m 2% 843Mi 49% k8s-node2 58m 2% 897Mi 52%[root@k8s-master pods]# kubectl delete -f test0008.yaml //根据文件完全删除
[root@k8s-master pods]# kubectl delete replicationcontrollers nginx0 //删除
二、replicaSet
[root@k8s-master pods]# vim test0009.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: nginx1
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: nginx1
spec:replicas: 3selector:matchLabels:tier: nginx1matchExpressions:- key: tieroperator: Invalues: [nginx1]template:metadata:name: nginx1labels:app: guestbooktier: nginx1spec:#restartPolicy: OnFailurecontainers:- name: nginx1image: docker.io/library/nginx:latestimagePullPolicy: Neverports:- name: nginxportcontainerPort: 80
[root@k8s-master pods]# kubectl create -f test0009.yaml
[root@k8s-master pods]# kubectl get po
NAME READY STATUS RESTARTS AGE
cluster-test1-54575cf56c-46mb4 1/1 Running 5 (52s ago) 5h9m
nginx1-jg6lp 1/1 Running 0 35s
nginx1-r5hlp 1/1 Running 0 35s
nginx1-s26lm 1/1 Running 0 35s
相关文章:
2024.9.14(RC和RS)
一、replicationcontroller (RC) 1、更改镜像站 [rootk8s-master ~]# vim /etc/docker/daemon.json {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io",&…...
【算法随想录04】KMP 字符串匹配算法
这是字符串模式匹配经典算法。 给定一个文本 t 和一个字符串 s,我们尝试找到并展示 s 在 t 中的所有出现(occurrence)。 #include<bits/stdc.h>using namespace std;vector<int> KMP(string s) {int n s.size();vector<int&g…...
TCP和MQTT通信协议
协议分层 网络分层 协议应用层 Co AP MQTT HTTP传输层 UDP TCP网络层 IP链路层 Enternet 网络分层中最…...
Python Pickle 与 JSON 序列化详解:存储、反序列化与对比
Python Pickle 与 JSON 序列化详解:存储、反序列化与对比 文章目录 Python Pickle 与 JSON 序列化详解:存储、反序列化与对比一 功能总览二 Pickle1 应用2 序列化3 反序列化4 系统资源对象1)不能被序列化的系统资源对象2)强行序列…...
第二百三十二节 JPA教程 - JPA教程 - JPA ID自动生成器示例、JPA ID生成策略示例
JPA教程 - JPA ID自动生成器示例 我们可以将id字段标记为自动生成的主键列。 数据库将在插入时自动为id字段生成一个值数据到表。 例子 下面的代码来自Person.java。 package cn.w3cschool.common;import javax.persistence.Entity; import javax.persistence.GeneratedValu…...
计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】
一、以快递网络来引入分层思想 1.1 “分层” 的设计思想【将庞大而复杂的问题,转化为若干较小的局部问题】 从我们最熟悉的快递网络出发,在你家附近会有一个快递终点站A,在其他的城市,也会有这种快递终点站,比如说快递…...
Vite + Electron 时,Electron 渲染空白,静态资源加载错误等问题解决
问题 如果在 electron 里直接引入 vite 打包后的东西,那么有些资源是请求不到的 这是我的引入方式 根据报错,我们来到 vite 打包后的路径看一看 ,修改一下 dist 里的文件路径试了一试 修改后的样子,发现是可以的了 原因分析 …...
ZAB协议(算法)
一、ZAB(ZooKeeper Atomic Broadcast)介绍 ZAB 即 ZooKeeper Atomic Broadcast,是 ZooKeeper 实现分布式数据一致性的核心算法。它是一种原子广播协议,用于确保在分布式环境中,多个 ZooKeeper 服务器之间的数据一致性。…...
多个音频怎么合并?把多个音频合并在一起的方法推荐
多个音频怎么合并?无论是制作连贯的播客节目还是将音乐片段整合成专辑,音频合并已成为许多创作者的常见需求。通过有效合并音频,可以显著提升项目的整体质量,确保内容的连续性和一致性。然而,合并后的文件通常比原始单…...
【Django】Django Class-Based Views (CBV) 与 DRF APIView 的区别解析
Django Class-Based Views (CBV) 与 DRF APIView 的区别解析 在 Django 开发中,基于类的视图(Class-Based Views, CBV)是实现可重用性和代码结构化的利器。而 Django REST Framework (DRF) 提供的 APIView 是针对 API 开发的扩展。 一、CBV …...
如何增加Google收录量?
想增加Google收录量,首先自然是你的页面数量就要多,但这些页面的内容也绝对不能敷衍,你的网站都没多少页面,谷歌哪怕想收录都没办法,当然,这是一个过程,持续缓慢的增加页面,增加网站…...
leetcode练习 格雷编码
n 位格雷码序列 是一个由 2n 个整数组成的序列,其中: 每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一…...
【LLM:Gemini】文本摘要、信息提取、验证和纠错、重新排列图表、视频理解、图像理解、模态组合
开始使用Gemini 目录 开始使用Gemini Gemini简介 Gemini实验结果 Gemini的多模态推理能力 文本摘要 信息提取 验证和纠错 重新排列图表 视频理解 图像理解 模态组合 Gemini多面手编程助理 库的使用 引用 本文概述了Gemini模型和如何有效地提示和使用这些模型。本…...
CMS之Wordpress建设
下载 https://cn.wordpress.org/ 宝塔安装Wordpress 创建网站 上传文件、并解压、剪切文件到项目根目录 安装 -> 数据库信息 -> 标题信息 http://wordpress.xxxxx.com 登录 http://wordpress.xxxxxxxxx.com/wp-admin/ 1. 主题(模板) wordpress-基本使用-02-在主题…...
使用Neo4j存储聊天记录的简单教程
引言 在当今的数据驱动世界中,关系型数据库有时难以处理复杂的、相互关联的数据集。Neo4j作为一款开源图数据库,以其高效管理高连接数据的能力而广受欢迎。本篇文章将详细介绍如何使用Neo4j来存储聊天信息历史,引导您在实际项目中利用其强大…...
前端面试常考算法
快速排序 #include<iostream> #include<cstdio> using namespace std; const int N 100005; int a[N];void quick_sort(int a[], int l, int r) {if (l > r) return;int x a[l r >> 1];int i l - 1, j r 1;while (i < j) {while (a[i] < x);…...
【机试准备】常用容器与函数
Vector详解 原文链接:【超详细】C vector 详解 例题,这一篇就够了-CSDN博客 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种…...
Base 社区见面会 | 新加坡站
活动信息 备受期待的 Base 社区见面会将于 Token2049 期间在新加坡举行,为 Base 爱好者和生态系统建设者提供一个独特的交流机会。本次活动由 DAOBase 组织,Base 和 Coinbase 提供支持,并得到了以下合作伙伴的大力支持: The Sand…...
麒麟操作系统搭建Nacos集群
Nacos 集群搭建 2.4.2 环境介绍 操作系统Kylin Linux Advanced Server V10 (Lance)Kylin Linux Advanced Server V10 (Lance)Kylin Linux Advanced Server V10 (Lance)内核版本Linux 4.19.90-52.22.v2207.ky10.aarch64Linux 4.19.90-52.22.v2207.ky10.aarch64Linux 4.19.90-52…...
Imagination推出性能最高且具有高等级功能安全性的汽车GPU IP
Imagination DXS GPU 进一步扩大其在汽车领域的领先地位 产品亮点 : 峰值性能比 Imagination 上一代汽车 GPU 提高了 50%,可扩展至 192GPixel/s、6 TFLOPS 和 24TOPS计算工作负载的性能提升多达十倍引入创新的分布式功能安全机制,以最小的…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

