当前位置: 首页 > news >正文

云安全攻防(十二)之 手动搭建 K8S 环境搭建

手动搭建 K8S 环境搭建

首先前期我们准备好三台 Centos7 机器,配置如下:

主机名IP系统版本
k8s-master192.168.41.141Centos7
k8s-node1192.168.41.142Centos7
k8s-node2192.168.41.143Centos7

前期准备

首先在三台机器上都执行如下的命令

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 永久关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 永久关闭 swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 修改/etc/hosts
vim /etc/hosts
192.168.41.141 k8s-master
192.168.41.142 k8s-node1
192.168.41.143 k8s-node2
# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl --system  
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com

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

然后在三台机器上都配置阿里云的 K8s 源,执行如下的命令

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

在这里插入图片描述

然后在三台机器上均安装 docker、kubeadm、kubelet、kubectl

安装 docker,在三台机器上均执行如下的命令一键安装

curl -s https://get.docker.com/ | sh

在这里插入图片描述

如下所示安装完成:

在这里插入图片描述

配置docker镜像下载加速器,执行如下的命令:

vim /etc/docker/daemon.json{"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
}#查看docker信息,进行确认
systemctl restart docker
docker info  

出现如下信息则显示配置完成

在这里插入图片描述

接着执行如下命令安装 kubelet、kubeadm 和 kubectl

#安装 kubelet、kubeadm 和 kubectl
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
#设置 kubelet 开机自启
systemctl enable kubelet

在这里插入图片描述

部署 K8S-master

在 master 节点执行如下命令初始化 master

kubeadm init --apiserver-advertise-address=192.168.41.141 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all--apiserver-advertise-address 集群通告地址
--image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
--kubernetes-version K8s版本,与上面安装的一致
--service-cidr 集群内部虚拟网络,Pod统一访问入口
--pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

或者使用配置文件引导:

vi kubeadm.conf
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.21.0
imageRepository: registry.aliyuncs.com/google_containers 
networking:podSubnet: 10.244.0.0/16 serviceSubnet: 10.96.0.0/12 

然后执行以下的命令初始化

kubeadm init --config kubeadm.conf --ignore-preflight-errors=all 

初始化完成后,最后会输出一个 join命令,先记住,下面用

在这里插入图片描述

然后拷贝kubectl使用的连接k8s认证文件到默认路径:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

在这里插入图片描述

部署 K8S-node

在两个 node 节点(192.168.41.142/143)执行如下命令即可加入 K8S 集群

kubeadm join 192.168.41.141:6443 --token sec4pk.nnihf0tismgn6kax --discovery-token-ca-cert-hash sha256:a8a0adf8b5fd9adb6ac8a2977456bd1671055146ed5711eaab5280d6541986fd 

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成:

kubeadm token create --print-join-command

部署容器网络(CNI)

部署网络 Calico 是一个纯三层的数据中心网络方案,是目前 Kubernetes 主流的网络方案,执行以下的命令下载YAML:

wget https://docs.projectcalico.org/v3.19/manifests/calico.yaml --no-check-certificate

下载完后还需要修改里面定义 Pod 网络(CALICO_IPV4POOL_CIDR),与之前
kubeadm init 的 --pod-network-cidr 指定的一样

vim calico.yaml

在这里插入图片描述

默认 calico.yaml 中所使用的镜像都来源于 docker.io 国外镜像源,这里我们可以删除 docker.io 前缀以使镜像从国内镜像加速站点下载

cat calico.yaml |grep 'image:'
sed -i 's#docker.io/##g' calico.yaml

在这里插入图片描述

修改完后文件后,部署:

#部署
kubectl apply -f calico.yaml
#查看状态,执行完上一条命令需要等一会才全部 running
kubectl get pods -n kube-system

等Calico Pod都Running,节点也会准备就绪

部署 Dashboard

Dashboard 是官方提供的一个 Web UI,可用于基本管理 K8s 资源,执行如下命令下载 yaml 文件。默认 Dashboard 只能集群内部访问,修改 Service 为NodePort 类型,暴露到外部:

wget https://github.com/kubernetes/dashboard/releases/tag/v2.4.0/aio/deploy/recommended.yaml

修改如下,nodePort 的端口范围为 30000-32767,这里设置为 31000,并且添加 type:NodePort

vim recommended.yaml

在这里插入图片描述

执行如下命令应用

kubectl apply -f recommended.yaml

在 master 节点创建 service account 并绑定默认 cluster-admin 管理员集群角色,执行如下的命令

# 创建用户
kubectl create serviceaccount dashboard-admin -n kube-system
# 用户授权
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin -
-serviceaccount=kube-system:dashboard-admin
# 获取用户 Token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret |
awk '/dashboard-admin/{print $1}')

在这里插入图片描述

然后我们获得如下的token,然后使用输出的 token 登录 Dashboard 就好了

eyJhbGciOiJSUzI1NiIsImtpZCI6IjNpbzFJbTg4UjlpcjFBdS1rb1J3NzFtY3BETlhtVkQ3S0hXZWwwU0MwN1UifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tYzdzcHAiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZjAyMTE1OWMtZjcyMC00YTZlLWFiY2MtYzIzYWRhZjBiZjk5Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.aD_ZtS0domXxtWz-2BaGmZebJMqoNvWqHgJ4K7kQ9eir5JvIqTsrxM14dNrUrEFRZC2hw6Gn_xz7Nezy81XPU64HHcbGiNvNU8K7OwvTWwTOpDBRPho1CaxJsKBrlQwoNf1pzoShqO-JdL4kVfJUmKthjUqv8QduwVzEkCWeTXgcHOoPnsOaJSXJzwanAC4e5pIovcjMGQJU4W87T8uVW4bdO4w48c-101-mMYHMouKVRxF8OOTuGHFXUDpYCKAOvfA73gtwoyi_4wiSqS7NSZZTGwFfppUYDomjoA3FUFubZ2xLoc8fN2GoFzzTcylxFHTCfupJM2nUVs9vxQbJw

然后我们浏览器访问 URL:https://master:31000或者 https://node:31000 均可

在这里插入图片描述

输入获得的token,就可以完成登陆了

在这里插入图片描述

相关文章:

云安全攻防(十二)之 手动搭建 K8S 环境搭建

手动搭建 K8S 环境搭建 首先前期我们准备好三台 Centos7 机器&#xff0c;配置如下&#xff1a; 主机名IP系统版本k8s-master192.168.41.141Centos7k8s-node1192.168.41.142Centos7k8s-node2192.168.41.143Centos7 前期准备 首先在三台机器上都执行如下的命令 # 关闭防火墙…...

Python学习笔记_基础篇(八)_正则表达式

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具&#xff0c;拥有自己独特的语法以及一个独立的处理引擎&#xff0c;效率上可能不如str自带的方法&#xff0c;但功能十分强大。得益于这一点&#xff0c;在提供了正则…...

【洛谷 P5736】【深基7.例2】质数筛 题解(判断质数)

【深基7.例2】质数筛 题目描述 输入 n n n 个不大于 1 0 5 10^5 105 的正整数。要求全部储存在数组中&#xff0c;去除掉不是质数的数字&#xff0c;依次输出剩余的质数。 输入格式 第一行输入一个正整数 n n n&#xff0c;表示整数个数。 第二行输入 n n n 个正整数 …...

C语言好题解析(一)

目录 选择题1选择题2选择题3选择题4编程题一 选择题1 执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09;int x 5, y 7; void swap() {int z;z x;x y;y z; } int main() {int x 3, y 8;swap();printf("%d,%d\n",x, y);return 0; }A: 5,7 B: …...

uniapp微信小程序区分正式版,开发版,体验版

小程序代码区分是正式版&#xff0c;开发版&#xff0c;还是体验版 通常正式和开发环境需要调用不同域名接口&#xff0c;发布时需要手动更换 或者有些东西不想在正式版显示&#xff0c;只在开发版体验版中显示&#xff0c;也需要去手动隐藏 官方没有明确给出判断环境的方法&a…...

更多openEuler镜像加入AWS Marketplace!

自2023年7月openEuler 22.03 LTS SP1正式登陆AWS Marketplace后&#xff0c;openEuler社区一直持续于在AWS上提供更多版本。 目前&#xff0c;openEuler22.03 LTS SP1 ,SP2两个版本及 x86 arm64两种架构的四个镜像均可通过AWS对外提供&#xff0c;且在亚太及欧洲15个Region开放…...

【BASH】回顾与知识点梳理(二十四)

【BASH】回顾与知识点梳理 二十四 二十四. 权限规划和身份切换24.1 主机的细部权限规划&#xff1a;ACL 的使用什么是 ACL 与如何支持启动 ACL如何启动 ACL 24.2 ACL 的设定技巧&#xff1a; getfacl, setfaclsetfacl 指令用法介绍及最简单的『 u:账号:权限 』设定getfacl 指令…...

CSRF

CSRF CSRF&#xff0c;跨站域请求伪造&#xff0c;通常攻击者会伪造一个场景&#xff08;例如一条链接&#xff09;&#xff0c;来诱使用户点击&#xff0c;用户一旦点击&#xff0c;黑客的攻击目的也就达到了&#xff0c;他可以盗用你的身份&#xff0c;以你的名义发送恶意请…...

pyscenic分析:视频教程

我们之前更新过pyscenic的教程&#xff1a;pySCENIC单细胞转录因子分析更新&#xff1a;数据库、软件更新。我们也说过&#xff0c;我们号是放弃R语言版的SCENIC的分析了&#xff0c;因为它比较耗费计算资源和时间&#xff0c;所以我们的单细胞转录因子分析教程都是基于pysceni…...

可视化绘图技巧100篇进阶篇(九)-三维百分比堆积条形图(3D Stacked Percentage Bar Chart)

目录 前言 适用场景 绘图工具及代码实现 帆软 实现思路 方案一&#xff1a;使用计算指标 上传数据 添加组件 生成图表 添加计算字段 生成分区柱形图 生成百分比堆积条形图 美化图表 设置标签 设置颜色 效果查看 PC 端 移动端 方案二&#xff1a;使用自助数…...

js实现将文本转PDF格式并下载到本地

html里面需要引入jspdf.umd.min.js和FileSaver.js jspdf.umd.min.js&#xff1a;https://www.npmjs.com/package/jspdf FileSaver.js&#xff1a;https://download.csdn.net/download/weixin_45791806/87272893?spm1001.2014.3001.5503 同时项目的根部目录也需要引入SimHei.tt…...

Servlet+JDBC实战开发书店项目讲解第四篇:登录实现

ServletJDBC 实战开发书店项目讲解第四篇&#xff1a;登录注册实现 在本篇博客中&#xff0c;我们将继续讲解 ServletJDBC 实战开发书店项目。这次我们将重点讲解如何实现登录和注册功能。 1. 创建数据库表 首先&#xff0c;我们需要在数据库中创建两个表&#xff0c;一个用…...

HarmonyOS NEXT新能力,一站式高效开发HarmonyOS应用

2023年8月6日华为开发者大会2023&#xff08;HDC.Together&#xff09;圆满收官&#xff0c;伴随着HarmonyOS 4的发布&#xff0c;华为向开发者发布了汇聚所有最新开发能力的HarmonyOS NEXT开发者预览版&#xff0c;并分享了围绕“一次开发&#xff0c;多端部署” “可分可合&a…...

【Java从0到1学习】09 正则表达式

1. 正则表达式概述 在编写处理字符串的程序或网页时&#xff0c;经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说&#xff0c;正则表达式就是记录文本规则的代码。 正则表达式&#xff0c;又称正规表示法、常规表示法&#xff…...

log4j:WARN No appenders could be found for logger问题

本文将idea场景下的使用。 IDEA中&#xff0c;将配置文件命名为log4j.properties&#xff08;该命名才会被自动加载&#xff09;&#xff0c; 并放到某个目录下&#xff08;通常放到resources目录&#xff09;&#xff0c;并在resources上右键&#xff0c;找到Mark Directory a…...

【Java】批量生成条形码-itextpdf

批量生成条形码 Controller ApiOperation("商品一览批量生成商品条形码")PostMapping("/batchGenerateProdBarCode")public void batchGenerateProdBarCode(RequestBody ProductListCondition productListCondition,HttpServletResponse response){import…...

SpringBoot登录、退出、获取用户信息的session处理

1、登录方法&#xff1a;login PostMapping("/user/login")public ResponseVo<User> login(Valid RequestBody UserLoginForm userLoginForm,HttpSession session) {ResponseVo<User> userResponseVo userService.login(userLoginForm.getUsername(), …...

【软件测试】随笔系统测试报告

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: 软件测试 随笔系统采用 SSM 框架前后端分离的方法实现&#xff0c;本文主要针对功能&#xff1a;登录&#xff0c;注册&#xff0c;注销&#xff0c;写随笔&#xff0c;删除随笔&#xff0c;随笔详情页…...

vue中使用html2canvas+jsPDF实现pdf的导出

导入依赖 html2canvas依赖 npm install html2canvasjspdf依赖 npm install jspdfpdf导出 以导出横向&#xff0c;A4大小的pdf为例 规律&#xff1a;1. html2canvas 中&#xff0c;在保持jsPDF中的宽高不变的情况下&#xff0c;设置html2canvas中的 width 和 height 值越小&a…...

Linux学习之firewallD

systemctl status firewalld.service查看一下firewalld服务的状态&#xff0c;发现状态是inactive (dead)。 systemctl start firewalld.service启动firewalld&#xff0c;systemctl status firewalld.service查看一下firewalld服务的状态&#xff0c;发现状态是active (runni…...

cann/cann-bench: Softmax算子API描述

Softmax 算子 API 描述 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力&#xff0c;涵盖算子生成、算子优化等领域&#xff0c;支撑模型选型、训练效果评估&#xff0c;统一量化评估标准&#xff0c;识别Agent能力短板&#xff0c;构建CANN领域评测平台&#…...

告别纯HDL!用Xilinx SDK和MicroBlaze MCS,像写软件一样玩转FPGA嵌入式开发

从软件工程师视角玩转FPGA&#xff1a;基于MicroBlaze MCS的嵌入式开发实战 在传统认知中&#xff0c;FPGA开发往往与硬件描述语言&#xff08;HDL&#xff09;紧密绑定&#xff0c;这让许多习惯高级语言编程的软件工程师望而却步。但现代FPGA开发环境已经发生了革命性变化——…...

前端工程化实战:代码规范、兼容性、调试与项目整合

前言学完 HTML 和 CSS 的核心知识后&#xff0c;如何写出规范、可维护、兼容性好的代码&#xff0c;并高效地调试和构建项目&#xff0c;是很多初学者的薄弱环节。本篇整合 代码书写规范、浏览器兼容性处理、Chrome DevTools 调试技巧、项目目录结构 以及 前端学习路径 等实用技…...

AI Agent到底是什么

AI Agent 到底是什么&#xff1f;看完我悟了 今天看了几个产品&#xff0c;跟 AI 聊了聊&#xff0c;突然对 AI Agent 有了个很朴素的理解。AI Agent 不神秘 很多人觉得 AI Agent 是什么高深的东西&#xff0c;只有大厂才能搞。 但我现在的理解就一句话&#xff1a;❝ 「AI Age…...

ESP32任务看门狗(TWDT)实战:从配置到调试,手把手教你防止程序‘饿死’

ESP32任务看门狗深度实战&#xff1a;构建高可靠多任务系统的关键技巧 在物联网设备开发中&#xff0c;系统稳定性往往决定着产品的成败。想象一下这样的场景&#xff1a;你的智能家居网关在凌晨3点突然停止响应&#xff0c;或者工业传感器节点在关键时刻丢失数据——这些问题的…...

国产工控机替代实战:从性能、成本到选型,核心场景落地指南

1. 国产替代的临界点&#xff1a;从“能用”到“好用”的质变在工业控制、金融交易、能源调度这些对稳定性和性能有严苛要求的领域&#xff0c;进口电脑设备&#xff0c;尤其是那些搭载英特尔至强处理器、运行Windows或特定Unix系统的工控机和工作站&#xff0c;曾经是唯一可靠…...

力扣算法面试150题——个人笔记——复习用

双指针 第一题&#xff1a; 125. 验证回文串https://leetcode.cn/problems/valid-palindrome/ 题目内容 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母…...

告别盲测!用CANoe回放功能搭建你的车载网络自动化测试环境

告别盲测&#xff01;用CANoe回放功能搭建你的车载网络自动化测试环境 车载网络测试工程师们是否经常遇到这样的困境&#xff1a;每次路试或台架测试后&#xff0c;堆积如山的CAN日志只能用于临时问题排查&#xff0c;无法形成可复用的测试资产&#xff1f;当需要验证某个历史问…...

别再只盯着AB相了!三引脚EC35编码器在智能面板上的应用与防误触设计

三引脚EC35编码器在智能面板设计中的创新应用与抗干扰实践 旋钮交互在智能家居和工业HMI领域从未失去它的魅力——当用户手指触碰到那个精致的金属环时&#xff0c;物理反馈带来的确定感是纯触控界面无法替代的。但传统AB相编码器的误触发问题长期困扰着产品设计师&#xff1a;…...

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南

告别手动Coding&#xff1a;用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南 当TC3xx系列芯片遇上AUTOSAR架构&#xff0c;传统寄存器级开发方式正在被图形化配置彻底革新。对于每天需要面对微控制器底层驱动的嵌入式工程师而言&#xff0c;EB tresos Studio提供的可视化…...