k3s安装部署说明

前言:
为什么不是k8s,k8s机子要求资源太高了,先来个简单的k3s

1:环境
ubuntu18

2安装docker
ubuntu18.0.4 如下

1:禁用防火墙及SELinux(可能需要禁止)
systemctl stop firewalld && systemctl disable firewalld
2: 开启路由转发
sudo vim /etc/sysctl.conf
打开 net.ipv4.ip_forward=1
3:安装docker
1>sudo apt-get update
2>安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
3>添加Docker官方GPG key并验证
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
sudo apt-key fingerprint 0EBFCD88
4>设置稳定版仓库,用于下载更新Docker
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
5>再次更新镜像源索引
sudo apt-get update
6>安装docker相关
sudo apt-get install docker-ce docker-ce-cli containerd.io
7>测试是否安装成功
docker -v

3:测试镜像
1>修改镜像地址 改为国内镜像地址,本文是阿里云镜像
编辑文件:sudo vim /etc/docker/daemon.json
在该daemon.json配置文件中加入(如果没有该文件会自动建一个):
{
“registry-mirrors”: [“https://mirrors.aliyun.com/”]
}

ubuntu18@ubuntu:/etc/docker$ vim /etc/docker/daemon.json
ubuntu18@ubuntu:/etc/docker$ sudo vim /etc/docker/daemon.json
ubuntu18@ubuntu:/etc/docker$ sudo systemctl daemon-reload
ubuntu18@ubuntu:/etc/docker$ sudo systemctl restart docker
ubuntu18@ubuntu:/etc/docker$ sudo docker info|grep Mirrors -A 1

2>使daemon.json生效
sudo systemctl daemon-reload
3>重启docker服务
sudo systemctl restart docker
4>查看docker镜像源
sudo docker info|grep Mirrors -A 1
5>运行hello-world
sudo docker run hello-world

ubuntu18@ubuntu:/etc/docker$ sudo docker run hello-world
Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:dcba6daec718f547568c562956fa47e1b03673dd010fe6ee58ca806767031d1c
Status: Downloaded newer image for hello-world:latest
6>查看本地镜像
sudo docker images
ubuntu18@ubuntu:/etc/docker$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 9c7a54a9a43c 4 months ago 13.3kB

7>卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io
如果要删除镜像和容器
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

8>搜索镜像
docker search node

9>拉取镜像
实际上,镜像的仓库名称中还应该添加仓库地址,即是注册服务器(registry)的地址作为前缀,当省略前缀时,则默认拉取的官方Docker hub所提供的镜像。
docker pull ubuntu:16.04表示从官方docker hub中拉去进行
docker pull cloudcomputing/ubuntu:tagname表示从自己在Docker hub上创建的个人仓库中拉取镜像
docker pull regis**.aliyuncs.com/cloudubuntu/ubuntu:16.04表示从自己在阿里云上注册的仓库中拉取镜像

sudo docker pull ubuntu:18.04

4:
1>启动容器
运行Docker容器
docker run -it --name mycontainer ubuntu:18.04 /bin/bash

ubuntu18@ubuntu:/etc/docker$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 f9a80a55f492 3 months ago 63.2MB
hello-world latest 9c7a54a9a43c 4 months ago 13.3kB
运行命令
ubuntu18@ubuntu:/etc/docker$ docker run -it --name ubuntu18 ubuntu:18.04 /bin/bash

1>拷贝文件
docker cp /path/on/host :/path/to/file

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/

docker cp /root/H-test 0b51220058b9:/root/docker-test/index/folder/

5:停止/退出/删除 容器
1>停止
docker ps 命令列出所有正在运行的容器
docker stop

2>
退出
exit命令
退出后再进入
docker attach <container_id>
docker exec -it <container_id> /bin/bash

3>
运行以下命令来删除镜像:
docker rmi <镜像ID或名称>
强制删除 sudo docker rmi -f f9a80a55f492

4>查看容器
sudo docker ps -a 查看所有容器
sudo docker container ls -all --all, -a false 显示所有容器(默认只显示运行的)
删除容器 sudo docker container rm festive_mccarthy

6:docker 加速
创建或修改 /etc/docker/daemon.json 文件

vi /etc/docker/daemon.json

{
“registry-mirrors”: [“https://registry.docker-cn.com”]
}
systemctl daemon-reload
systemctl restart docker.service
1.网易
http://hub-mirror.c.163.com

2.Docker中国区官方镜像
https://registry.docker-cn.com

3.中国科技大学
https://docker.mirrors.ustc.edu.cn

4.阿里云容器服务
https://cr.console.aliyun.com/
5。阿里专属
首页点击“创建我的容器镜像” 得到一个专属的镜像加速地址,类似于“https://1234abcd.mirror.aliyuncs.com”

3:安装k3s
参考
k3s:https://github.com/k3s-io/k3s/releases

k3s 57.6 MB last week 2进制文件(第一项)
k3s-airgap-images-amd64.tar 552 MB last week 镜像 (第2项)
Source code (zip) 2 weeks ago 源码 (倒数第2项)

离线部署
https://blog.csdn.net/qq_30614345/article/details/131387040

1:

两台主机分别设置

$ hostnamectl set-hostname master
$ hostnamectl set-hostname slave

查看当前主机名称

$ hostname

2::设置 ip 和 hostname 的对应关系

两台主机分别设置

$ cat >> /etc/hosts << EOF
192.168.43.183 master
192.168.43.184 slave
EOF

3:
手动部署镜像(all node)
从 K3s GitHub Release 页面下载 K3s v1.22.13+k3s1二进制文件,K3s 二进制文件需要与离线镜像的版本匹配。
下载地址:https://github.com/rancher/k3s/releases
这里选择 v1.22.13 版本:
https://github.com/k3s-io/k3s/releases/tag/v1.22.13+k3s1

4:
下载下面的两个文件:
k3s
k3s-airgap-images-amd64.tar.gz
将二进制文件放在 /usr/local/bin 目录下,并确保这个二进制文件是可执行的。
$ cp k3s /usr/local/bin/
$ chmod 755 /usr/local/bin/k3s
$ mkdir -p /var/lib/rancher/k3s/agent/images/
$ cp k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/

5:下载安装脚本(all node)
下载安装脚本:
https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh

chmod +x k3s-install.sh

6: master节点安装

master节点安装

安装k3s,跳过下载二进制文件

$ INSTALL_K3S_SKIP_DOWNLOAD=true ./k3s-install.sh

生成token

[root@master ~]# cat /var/lib/rancher/k3s/server/node-token
K10ae4e5bb6d803f8c2a0056973f4731740c0c78e40538078ed904c51ca0fd33ed0::server:444495845f5bf047ea343bfa5a1d92f5
[root@master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 27s v1.22.13+k3s1

7:slave节点安装

slave节点安装

INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://192.168.43.183:6443 K3S_TOKEN=K10ae4e5bb6d803f8c2a0056973f4731740c0c78e40538078ed904c51ca0fd33ed0::server:444495845f5bf047ea343bfa5a1d92f5 ./k3s-install.sh

INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://192.168.1.29:6443 K3S_TOKEN=K10e6b8a92130993a2f4d0f15842ecbd081b37a381943e81e0048814a888614eb3c::server:05e2b26f063a01522e94b32180678590 sh ./install.sh

8:
查看节点 sudo kubectl get nodes
删除节点 sudo kubectl delete node k8s-node3

卸载 k3s
如果想重装 k3s 或卸载 k3s,可以执行如下命令。

在 server 节点上

k3s-uninstall.sh

在 worker 节点上

k3s-agent-uninstall.sh

9:
sudo kubectl get nodes

输出类似如下,表示集群安装成功,说明一个 server 节点,二个 worker 节点已创建成功。

NAME STATUS ROLES AGE VERSION
server Ready control-plane,master 129m v1.23.4+k3s1
node1 Ready 3m2s v1.23.4+k3s1
node2 Ready 34s v1.23.4+k3s1

10 纯命令启动(非脚本)
启动master和worker

没有脚本启动方便,需要自己指定启动参数,如server、agent等

sudo k3s server &

Kubeconfig is written to /etc/rancher/k3s/k3s.yaml

sudo k3s kubectl get nodes

On a different node run the below. NODE_TOKEN comes from
/var/lib/rancher/k3s/server/node-token on your server

sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}

https://blog.csdn.net/liumiaocn/article/details/103342443
https://blog.csdn.net/qq_30614345/article/details/131387040
11:部署镜像
kubectl run
创建并运行一个或多个容器镜像。
创建一个deployment 或job 来管理容器。
run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [–command] – [COMMAND] [args…]
master 上 部署 nginx
sudo kubectl run --image=nginx nginx-app --port=80

ubuntu18@ubuntu:~/k3s$ sudo kubectl run --image=nginx nginx-app --port=80
[sudo] password for ubuntu18:
pod/nginx-app created

[root@host121 ~]# sudo kubectl run --image=nginx nginx-app --port=80
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx-app created

通过kubectl get node命令发现此ningx的pod运行所在的节点信息为host122,执行日志如下所示
ubuntu18@ubuntu:~/k3s$ sudo kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-app 1/1 Running 0 32s 10.42.2.4 master

使用expose命令以NodePort的方式生成服务
kubectl expose
将资源暴露为新的Kubernetes Service。
expose (-f FILENAME | TYPE NAME) [–port=port] [–protocol=TCP|UDP] [–target-port=number-or-name] [–name=name] [–external-ip=external-ip-of-service] [–type=type]
ubuntu18@ubuntu:~/k3s$ sudo kubectl expose pod nginx-app --port=80 --type=NodePort --target-port=80 --name=nginx-service
service/nginx-service exposed

https://blog.csdn.net/qq_30614345/article/details/131387040
ubuntu18@ubuntu:~/k3s$ sudo kubectl get pods,svc -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-app 1/1 Running 0 104m 10.42.2.4 master

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.43.0.1 443/TCP 2d2h
service/nginx-service NodePort 10.43.60.107 80:31544/TCP 11m run=nginx-app

查看 k3s 安装之后容器内存在的pod:
[root@master ~]# kubectl get pods -A
pod 的状态为 Running 和 Completed 说明安装成功。

如果觉得有用,麻烦点个赞,加个收藏

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

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

相关文章

以低代码技术加速推动企业数字创新

在数字化转型的浪潮中&#xff0c;企业面临着前所未有的挑战和机遇。随着技术的不断进步&#xff0c;企业需要快速适应市场变化&#xff0c;创新产品和服务&#xff0c;以保持竞争力。低代码技术作为一种新兴的开发模式&#xff0c;正逐渐成为企业数字创新的重要推动力。 低代码…

《深入浅出WPF》读书笔记.8路由事件

《深入浅出WPF》读书笔记.8路由事件 背景 路由事件是直接响应事件的变种。直接响应事件&#xff0c;事件触发者和事件响应者必须显示订阅。而路由事件的触发者和事件响应者之间的没有显示订阅&#xff0c;事件触发后&#xff0c;事件响应者安装事件监听器&#xff0c;当事件传…

财富趋势金融大模型已通过备案

财富趋势金融大模型已通过备案 8月28日晚&#xff0c;国内领先的证券软件与信息服务提供商——财富趋势&#xff0c;公布了其2024年上半年财务报告&#xff1a; 今年上半年&#xff0c;财富趋势营收1.48亿元&#xff0c;同比增长0.14%&#xff1b;实现归母净利润为1亿元&#x…

国标GB28181视频监控EasyCVR视频汇聚平台国标注册被陌生IP入侵如何处理?

GB28181国标/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中&#xff0c;将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级…

java 接口创建对象

Java 接口创建对象&#xff1a;深度解析与示例 在 Java 编程中&#xff0c;接口是一种非常重要的概念。它不仅为不同类之间的交互提供了规范&#xff0c;也促进了代码的重用和解耦。本文将深入探讨如何在 Java 中使用接口创建对象&#xff0c;带您理解这一关键特性。 什么是接…

nginx容器映射配置文件后,启动一直报错提示:failed (13: Permission denied)的排查

问题现象&#xff1a; 使用harbor 的install.sh 创建docker-compose之后&#xff0c;出现nginx容器一直重启。 查看日志发现是&#xff1a;配置文件无权限。报错信息如下&#xff1a; Sep 2 16:43:13 172.28.0.1 nginx[1344]: 2024/09/02 08:43:13 [emerg] 1#0: open() “/e…

UNION和UNION ALL的区别

一、区别 去重功能 UNION会去除结果集中的重复行。UNION ALL不会去除重复行&#xff0c;它只是简单地将多个结果集合并在一起。 性能 UNION ALL通常比UNION性能更好&#xff0c;因为UNION需要进行去重操作&#xff0c;这会增加额外的计算开销。 二、具体例子 假设有两个表tab…

HarmonyOS开发实战( Beta5版)线程间通信场景最佳实践

简介 在应用开发中&#xff0c;经常会需要处理一些耗时的任务&#xff0c;如果全部放在主线程中执行就会导致阻塞&#xff0c;从而引起卡顿或者掉帧现象&#xff0c;降低用户体验&#xff0c;此时就可以将这些耗时操作放到子线程中处理。通常情况下&#xff0c;子线程可以独立…

linux离线安装nacos

1、打开 Nacos-GitHub &#xff0c;点击 Release 可以看到 Nacos 的各版本跟新信息和安装包之类的 点击下载nacos-server-2.4.1.tar.gz&#xff0c;在linux创建nacos文件夹&#xff0c;把下载好的文件上传到nacos文件夹&#xff0c;并通过命令解压:tar -zxvf nacos-server-2.4.…

MySQL用户管理:用户管理、用户授权、用户权限撤销

MySQL的用户管理涉及用户创建、权限授予以及权限撤销等多个方面&#xff0c;是数据库管 理中至关重要的一环。以下是对MySQL用户管理、用户授权和用户权限撤销的详细描述&#xff1a;一、用户管理 1. 创建用户 在MySQL中&#xff0c;可以使用CREATE USER语句来创建新用户。创建…

《花100块做个摸鱼小网站! 》第五篇—通过xxl-job定时获取热搜数据

⭐️基础链接导航⭐️ 服务器 → ☁️ 阿里云活动地址 看样例 → &#x1f41f; 摸鱼小网站地址 学代码 → &#x1f4bb; 源码库地址 一、前言 我们已经成功实现了一个完整的热搜组件&#xff0c;从后端到前端&#xff0c;构建了这个小网站的核心功能。接下来&#xff0c;我们…

chrome插件模拟isTrusted的事件

文章目录 方法原理 使用js模拟的事件isTrusted的值时false。有的时候我们想要模拟sTrusted未true的事件就比较麻烦了。 我们可以利用chrome插件的 chrome.debugger解决改问题。 方法 大体思路是&#xff1a;模拟事件的请求从content_script.js发出&#xff0c;到达background…

【类模板】类模板的特化

一、类模板的泛化 与函数模板一样&#xff0c;类模板的泛化就是普通的模板&#xff0c;不具有特殊性的模板。 以下的类模板为泛化的版本 //类模板的泛化 template<typename T,typename U> struct TC {//静态成员变量static int static_varible; //声明TC() {std::cout…

常见图像图片属性的介绍与说明

图像属性是指图像的一些基本特征和参数&#xff0c;它们定义了图像的外观和存储方式。以下是一些常见的图像属性&#xff1a; 1. 分辨率&#xff1a; 分辨率通常以像素数&#xff08;如800x600&#xff09;来表示&#xff0c;指的是图像的宽度和高度上的像素点数。分辨率越高&…

【Spring Boot-IDEA创建spring boot项目方法】

1. 使用Spring Initializr 的 Web页面创建项目 2. 使用 IDEA 直接创建项目&#xff0c;其中有两种不同的搭建路径 3. 使用 IDEA 创建Maven项目并改造为springBoot 最常使用的两种方法其实就是一种&#xff0c;这里介绍在ieda中如何搭建 SpringBoot项目。 1.new Project--> 2…

剑侠情缘c#版(游戏源码+资源+工具+程序),百度云盘下载,大小1.68G

剑侠情缘c#版&#xff08;游戏源码资源工具程序&#xff09;&#xff0c;c#开发的&#xff0c;喜欢研究游戏的可以下载看看。亲测可进游戏。 剑侠情缘c#版&#xff08;游戏源码资源工具程序&#xff09;下载地址&#xff1a; 通过网盘分享的文件&#xff1a;【游戏】剑侠情缘c#…

误删文件回收站也清空了怎么找回?误删文件的救援方案

在数字化时代&#xff0c;电脑中的文件安全至关重要。然而&#xff0c;有时我们可能因为一时疏忽&#xff0c;误删了重要文件&#xff0c;甚至在慌乱中清空了回收站。面对这种情况&#xff0c;很多人会感到惊慌失措&#xff0c;担心重要数据就此丢失。但请不要绝望&#xff0c;…

系统架构设计师——系统性能

性能指标 计算机性能指标 操作系统性能指标 网络的性能指标 数据库的性能指标 数据库管理系统的性能指标 应用系统的性能指标 Web服务器的性能指标 性能计算 定义法 计算方法主要包括定义法、公式法、程序检测法和仪器检测法。这些方法分别通过直接获取理想数据、应用衍生出的…

shell脚本—————局域网IP扫描

#!/bin/bash #该脚本用于采集某个C类网络存活主机的MAC地址 #使用方法&#xff1a;bash 脚本名字网卡名字网段前三位.10.144.100. #ETH$(ifconfig | grep eth | awk {print $1})for ip in {1..254} do { arping -c 2 -w 1 -I $1 $2$ip| grep "reply from" > /dev/…

SAP 查询中间表

可以看到如下代码中&#xff0c;查询了底表zdbconn&#xff0c;又查了中间表ZTFI0072 DATA: gv_dbs(20) ,go_exc_ref TYPE REF TO cx_sy_native_sql_error,gv_error_text TYPE string,lv_count TYPE syst_index.SELECT SINGLE conntxtFROM zdbconn INTO gv_dbsWHERE sy…