k3s安装---适配边缘计算场景的轻量级的k8s(二)
三、安装k8s
k3s官网:https://k3s.io
文档:
github:https://github.com/k3s-io/k3s
3.1 安装基础环境
# 安装基础环境
1.安装yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo 2.修改hostname
hostnamectl set-hostname master && bash 3.关闭防火墙、关闭selinux,关闭iptables
systemctl stop firewalld ; systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config service iptables stop && systemctl disable iptables
iptables -F 4.关闭swap
swapoff -a 临时关闭
注销/etc/fstab中swap 5.修改机器内核参数
modprobe br_netfilter
echo "modprobe br_netfilter" >> /etc/profile cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF 6.配置hosts
cat /etc/hosts
192.168.10.50 master
192.168.10.51 node1 7.时间同步设置定时同步任务
yum install ntpdate -y
ntpdate time1.aliyun.com
* */1 * * * /usr/sbin/ntpdate time1.aliyun.com
systemctl restart crond 8.开启ipvs支持
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}; do
/sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1
if [ 0 -eq 0 ]; then
/sbin/modprobe ${kernel_module}
fi
done chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
9.安装containerd
yum install -y containerd
systemctl start containerd && systemctl status containerd && systemctl enable containerd
名称 | IP | 配置 | 用途 |
master | 192.168.10.50 | 2核2G | K3s Server |
node1 | 192.168.10.51 | 2核2G | K3s agent |
本来是2核1G,结果卡死了,只能将内存升级到2G
3.1 安装k3s server节点
国内用户安装执行以下命令:
# 安装最新的
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
k3s启动成功
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
INSTALL_K3S_VERSION=v1.20.7+k3s1 && INSTALL_K3S_MIRROR=cn && sh k3s-install.sh
指定版本安装,没试过可能有问题
https://docs.rancher.cn/docs/k3s/installation/install-options/_index/#使用脚本安装的选项
# 验证安装是否成功
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 18m v1.24.4+k3s1 [root@master ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
local-path-provisioner-7b7dc8d6f5-k6wng 1/1 Running 0 18m
coredns-b96499967-t6q94 1/1 Running 1 (13m ago) 18m
helm-install-traefik-crd-98l64 0/1 Completed 1 18m
helm-install-traefik-h25tq 0/1 Completed 2 18m
metrics-server-668d979685-965rv 1/1 Running 2 (105s ago) 18m
svclb-traefik-b4e8c1f8-xjvtz 2/2 Running 0 98s
traefik-7cd4fcff68-nvchn 1/1 Running 0 98s [root@master ~]# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 192m 9% 893Mi 91% [root@master ~]# systemctl status k3s
● k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: disabled)
Active: active (running) since 一 2022-09-05 19:00:02 CST; 19min ago
部署完成之后,上面所有的进程都由 k3s 这个 service 来创建管理。可以使用 systemctl status k3s 查看。
3.2 k3s集群添加work工作节点
# 1.提取 join token
[root@master ~]# cat /var/lib/rancher/k3s/server/node-token
K10a705b6f8de0f13587a6277a19ee3068749d5dc0cfb509e650046473f7af0c5f8::server:bd48ecd96b13ca6c4b7cd969545e1264 # 2.work节点执行
[root@node1 ~]# curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.10.51:6443 K3S_TOKEN=K10a705b6f8de0f13587a6277a19ee3068749d5dc0cfb509e650046473f7af0c5f8::server:bd48ecd96b13ca6c4b7cd969545e1264 sh -
# 安装完成:
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO] systemd: Enabling k3s-agent unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s-agent.service to /etc/systemd/system/k3s-agent.service.
[INFO] systemd: Starting k3s-agent
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 72m v1.24.4+k3s1
node1 Ready <none> 64s v1.24.4+k3s1 [root@master ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
local-path-provisioner-7b7dc8d6f5-k6wng 1/1 Running 0 72m
coredns-b96499967-t6q94 1/1 Running 1 (67m ago) 72m
helm-install-traefik-crd-98l64 0/1 Completed 1 72m
helm-install-traefik-h25tq 0/1 Completed 2 72m
metrics-server-668d979685-965rv 1/1 Running 2 (56m ago) 72m
svclb-traefik-b4e8c1f8-xjvtz 2/2 Running 0 55m
traefik-7cd4fcff68-nvchn 1/1 Running 0 55m
svclb-traefik-b4e8c1f8-gmft9 2/2 Running 0 72s
3.3 k3s卸载
[root@master ~]# ll /usr/local/bin/
总用量 64816
lrwxrwxrwx 1 root root 3 9月 5 18:59 crictl -> k3s
-rwxr-xr-x 1 root root 66363392 9月 5 18:59 k3s
-rwxr-xr-x 1 root root 2024 9月 5 18:59 k3s-killall.sh
-rwxr-xr-x 1 root root 1397 9月 5 18:59 k3s-uninstall.sh
lrwxrwxrwx 1 root root 3 9月 5 18:59 kubectl -> k3s # 卸载命令
[root@master ~]# /usr/local/bin/k3s-uninstall.sh
四、k3s安装redis
# 导入镜像
ctr images import redis-master.tar.gz
ctr images import redis-slave.tar.gz #
[root@master redis]# cat redis-master-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-master
labels:
app: redis
spec:
selector:
matchLabels:
app: redis
role: master
tier: backend
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: docker.io/kubeguide/redis-master:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 6379 [root@master redis]# cat redis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
role: master
tier: backend
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
role: master
tier: backend [root@master redis]# kubectl apply -f redis-master-deployment.yaml
deployment.apps/redis-master configured
[root@master redis]# kubectl apply -f redis-master-service.yaml # slave
[root@master redis]# cat redis-slave-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-slave
labels:
app: redis
spec:
selector:
matchLabels:
app: redis
role: slave
tier: backend
replicas: 1
template:
metadata:
labels:
app: redis
role: slave
tier: backend
spec:
containers:
- name: slave
image: docker.io/kubeguide/guestbook-redis-slave:latest
imagePullPolicy: IfNotPresent
env:
- name: GET_HOSTS_FROM
value: dns
ports:
- containerPort: 6379 [root@master redis]# cat redis-slave-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
app: redis
role: slave
tier: backend
spec:
ports:
- port: 6379
selector:
app: redis
role: slave
tier: backen [root@master redis]# kubectl get pods
NAME READY STATUS RESTARTS AGE
redis-master-7689cf48c9-wms77 1/1 Running 0 4m42s
redis-slave-76c777b89b-42n2v 1/1 Running 0 3m49s
k3s安装---适配边缘计算场景的轻量级的k8s(二)的更多相关文章
- 在边缘计算场景中使用Dapr
Dapr 是分布式应用程序可移植.事件驱动的运行时, 这里有几个关键字,我们拆开来看一下: 分布式: 代表共享或是分散,在云原生应用上体现为微服务,在边缘计算场景中代表分散的模块,可以做积木式拼接. ...
- SuperEdge: 使用WebAssembly扩展边缘计算场景
作者 SuperEdge 开发者团队 概要 SuperEdge 是 一个开源的分布式边缘计算容器管理系统,用于管理多个云边区域中的计算资源和容器应用. 在当前架构中,这些资源和应用能够作为一个 Kub ...
- 阿里云如何基于标准 K8s 打造边缘计算云原生基础设施
作者 | 黄玉奇(徙远) 阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复关键词 1219 即可下载本文 PPT 及实操演示视频. 导读:伴随 5G.IoT 的发展,边缘 ...
- 边缘计算 KubeEdge+EdgeMash
简介 KubeEdge是面向边缘计算场景.专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同.资源协同.数据协同和设备协同等能力 ...
- JuiceFS 在火山引擎边缘计算的应用实践
火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...
- 关于k8s这项大动作,预示着边缘计算迎来“开源”发展的新周期……
在文章<最近在边缘计算领域,发生了一件足以载入物联网史册的大事…>我曾经提到Kubernetes(简称K8s)将从超大规模云计算环境,被带入到物联网边缘计算场景中. 事情有了新进展,从本周 ...
- 边缘计算k8s集群之SuperEdge
什么是边缘计算? 边缘计算,是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务.其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务.应 ...
- 北美KubeCon新风,正把K8S魔力带向边缘计算
作者:DJ 审校:Kevin·Wang 1. 容器生态圈新的创新方向 2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕.这次北美KubeCon总共吸引了8000多观众参会,创下历 ...
- 技术分享预告丨k3s在边缘计算中的应用实践
技术分享是在[Rancher官方微信技术交流群]里以图文直播+QA实时互动的方式,邀请国内已落地经验的公司或团队负责人分享生产落地的最佳实践.记得添加微信小助手(微信号:rancher2)入群,实时参 ...
- Rancher与ARM深化战略合作,“软硬结合”加速边缘计算时代
时至今日,许多企业已将边缘计算列为战略目标,对于部分企业而言,边缘计算则已成为它们势在必行的部分.而随着对应用软件和硬件能力的需求不断增长,容器和Kubernetes已发展为边缘计算领域备受瞩目的一项 ...
随机推荐
- 记录--ThreeJs手搓一个罗盘特效
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 先上效果 前言 最近在学Three.js.,对着文档看了一周多,正好赶上码上掘金的活动,就顺便写了一个小demo,手搓一个罗盘特效. 太极 ...
- 记录--JavaScript 用简约的代码实现一些日常功能
这里给大家分享我在网上总结出来的一些JavaScript 知识,希望对大家有所帮助 一.日期处理 1. 检查日期是否有效 该方法用于检测给出的日期是否有效: const isDateValid = ( ...
- kali 2018.2镜像安装
本文链接来源 Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具.此次通过VMware虚拟机安装201 ...
- spring redis 工具类
import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; ...
- 第十三届蓝桥杯大赛软件赛省赛【Java 大学B 组】试题B: 山
1 public class HelloWorld { 2 public static void main(String args[]) { 3 long count=0; 4 String temp ...
- Python 列表操作指南2
将元组的元素添加到列表中: thislist = ["apple", "banana", "cherry"] thistuple = (&q ...
- HMS Core视频编辑服务:AI着色, 忆往昔看今朝
近期热播的电视剧<人世间>,讲述了70年代无数普通人的故事,细腻的人物形象和真实的故事感动着我们.原来在那个年代,我们的父母和祖辈都在为新中国的美好生活而奋斗着,为国家舍弃了小家团聚的机会 ...
- 什么是coredump
什么是 coredump 介绍 在 Linux 开发中,我们经常听到程序员说我的程序 core 掉了,通常出现这类的问题是低级 bug 中的内存访问越界.使用空指针.堆栈溢出等情况.使程序运行过程中异 ...
- Spring Cloud Config:外部集中化配置管理
Spring Cloud Config:外部集中化配置管理 SpringCloud学习教程 SpringCloud Spring Cloud Config 可以为微服务架构中的应用提供集中化的外部配置 ...
- Spring Cloud 核心组件之Spring Cloud Hystrix:服务容错保护
Spring Cloud Hystrix:服务容错保护 SpringCloud学习教程 SpringCloud Spring Cloud Hystrix 是Spring Cloud Netflix 子 ...