云安全攻防(十三)之 使用minikube安装搭建 K8s 集群

news/2024/11/7 15:27:09/

使用minikube安装搭建 K8s 集群

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化,一般来说K8s安装有三种方式,分别是Minikube装搭建 K8s 集群,特点是只有一个节点的集群,master和worker都在一起。通过云平台搭建K8s,特点是可视化搭建,几步就可以创一个集群,优点是安装简单,生态齐全。还有就是裸机手动安装搭建 K8s 集群,特点是至少需要两台机器,主节点和工作节点各一台,需要自己安装Kubernetes组件,配置稍麻烦,缺少生态支持,比如负载均衡器和云存储。

minikube 介绍

minikube 是启动一个最小的 local 的 Kubernetes 的一个环境,minikube 在 macOS、Linux 和 Windows 上实现了一个本地 K8S 集群。minikube 的主要目标是成为本地 K8S 应用程序开发的最佳工具,并支持所有适合的 K8S 特性,minikube可以在本机也可以在虚拟机中安装,Win/Linux都可,如果是虚拟机安装的话VT-x/AMD-v 虚拟化必须在 BIOS 中开启。并且如果在Windows下安装,如果开启了Hyper-V,不支持VirtualBox方式。

安装minikube过程为三步,分别是:安装docker、安装kubectl、安装minikube

初始化安装

初始化安装之前我们需要一台干净的Centos7主机,首先进行一些初始化的操作:

 #关闭自带防火墙
systemctl stop firewalld && systemctl disable firewalld  
#安装iptables并清空规则
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save 
#关闭SELinux 
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  
#关闭SWap
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fsta  

在这里插入图片描述

完成初始化操作后,我们需要进行docker的安装

1、安装 docker

yum update
yum -y install docker
#启动和设置开机自启
systemctl start docker
systemctl enable docker
#非root用户 建立docker组并添加自身用户
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker
su root //需要切换下用户,生效配置
su ${USER}
#国内源:
cat <<EOF > /etc/docker/daemon.json {  "registry-mirrors": ["http://hub-mirror.c.163.com"] } EOF
#检查虚拟化
grep -E --color 'vmx|svm' /proc/cpuinfo  

在这里插入图片描述

2、安装 kubectl

#下载最新kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
#sha256校验
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
#校验
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check

在这里插入图片描述

下载最新kubectl后再校验完整性,显示OK即可开始安装

在这里插入图片描述

#kubectl后运行
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
#查看安装是否成功
kubectl version --client --output=yaml

在这里插入图片描述

3、安装minikube

minikube项目地址
阿里云发布的minikube项目地址

#安装conntrack
yum install -y conntrack
#下载 minikube v1.25.0 版本
curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.25.0/minikube-linux-amd64
#赋予执行权限并且移动
chmod +x minikube && sudo mv minikube /usr/local/bin/
#启动 minikube,使用阿里的镜像。指定--vm-driver=none 参数后,minikube 就不会创建 minikubevm 了,而是会直接在当前系统里安装单节点的 k8s 集群。启动过程中会下载 kubeadm、kubelet 和启动过程所需的组件,所以启动过程会比较久,需要耐心等待。
minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --vm-driver=none
#启动时候的其它参数
--driver=*** 从 1.5.0 版本开始,Minikube 缺省使用系统优选的驱动来创建 Kubernetes 本地环境,比如您已经安装过 Docker 环境,minikube 将使用 docker 驱动
--cpus=2: 为 minikube 虚拟机分配 CPU 核数
--memory=2048mb: 为 minikube 虚拟机分配内存数
--kubernetes-version=v1.16.1: minikube 虚拟机将使用的 kubernetes 版本

在这里插入图片描述

使用以下的命令即可查看minikube 的状态,这里再给大家一些minikube的常用参数:

#查看 minikube 的状态
minikube status
#暂停集群
minikube pause
#停止集群
minikube stop
#查看 minikube 的版本
minikube version
#配置集群内存
minikube config set memory 16384
#查看已安装的附加服务
minikube addons list
#删除所有的 minikube 搭建的 k8s 集群
minikube delete --all
#查看 kubectl 版本号
minikube kubectl version
#创建负载均衡协调器
minikube tunnel

在这里插入图片描述

执行如下命令,若能显示 K8S 的 pod namespace,则说明安装成功

kubectl get pod --all-namespaces

在这里插入图片描述

kubectl run hello-minikube --image=registry.cn-hangzhou.aliyuncs.com/google-containers/echoserver:1.4 --port=8080
kubectl get pod

在这里插入图片描述

minikube 控制台

执行如下的命令打开minikube的控制台

minikube dashboard

在这里插入图片描述

在这里插入图片描述

Minikube 启动 Dashboard 后返回的地址只是容器代理出来的地址只能本机内网访问,默认只能 localhost 访问,如果需要开放外部访问需要使用 kubectl 执行如下命令添加代理

kubectl proxy --port=8000 --address=0.0.0.0 --accept-hosts='^.*' &

在这里插入图片描述

设置好后即可非本地的 ip 访问 dashboard 的 UI 界面了

http://192.168.41.144:8000/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/workloads?namespace=default

在这里插入图片描述


http://www.ppmy.cn/news/1059930.html

相关文章

Java小项目|拼图小游戏|黑马

项目技术需求 Java基础 基本if、forio流File集合JFrame【看得懂就行】 项目素材以及打包exe&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rPazJezTwS9O6e8BoYNIYA?pwd6666 项目运行截图 项目来源 哔哩哔哩-黑马程序员上 哔哩哔哩-黑马程序员下 项目介绍&…

老师如何设置条件以创建一个分班查询系统?

作为教育工作者&#xff0c;我们总是被寄予厚望&#xff0c;期待能够以最佳的方式组织班级。然而&#xff0c;一旦分班情况被公开&#xff0c;家长们就开始议论纷纷&#xff1a;“为什么我的孩子要跑到这个班&#xff0c;每天要爬四楼&#xff01;为什么不能和我同事的孩子一个…

ssh免密配置后没生效问题

一、背景 3台linux服务器搭建集群需要互相做ssh免密&#xff0c;按正常流程操作后验证&#xff0c;免密未生效&#xff0c;还需要输入密码&#xff0c;开始了一路问题定位的历程。。。。 原理请移步 linux服务配置ssh免密 二、思路 &#xff08;一&#xff09;确认免密操作…

Git gui教程---第八篇 Git gui的使用 创建一个分支

一般情况下一个主分支下代码稳定的情况下会新建出一个分支&#xff0c;然后在分支上修改&#xff0c;修改完成稳定后再合并到主分支上。 或者几个人合作写一份代码&#xff0c;每个人各一个分支&#xff0c;测试稳定再合并到主分支上。 在git gui选择菜单栏“分支”&#xff0…

Qt --- QTimer

在Qt开发界面的时候&#xff0c;非常多的时候都得使用定时器&#xff0c;定时器具体可以干什么呢&#xff1f;比如&#xff1a;控制时钟、定时改变样式、改变进度等。。。说到这里&#xff0c;经常使用QQ&#xff0c;而不同的时段都会显示不同的背景&#xff0c;我认为如果用Qt…

问题:UITableViewCellContentView:height == 44 约束冲突

使用Masonry自动布局&#xff0c;高度自定义&#xff0c;出现如标题所示约束冲突 <NSLayoutConstraint:UITableViewCellContentView:.height 44> 解决方案: 在设置底部约束的时候设置 高优先级priorityHigh() 即可 [self.auditBtn mas_makeConstraints:^(MASConstra…

面试题. 搜索旋转数组

搜索旋转数组。给定一个排序后的数组&#xff0c;包含n个整数&#xff0c;但这个数组已被旋转过很多次了&#xff0c;次数不详。请编写代码找出数组中的某个元素&#xff0c;假设数组元素原先是按升序排列的。若有多个相同元素&#xff0c;返回索引值最小的一个。 示例1: 输入…

信息安全面试题合集

0x00 前言 本篇会记录一些可能会遇到的面试题&#xff0c;持续更新 0x01 Web SQL注入 sql注入常见的闭合方式有哪些&#xff1f;Mysql5.0上下sql注入有什么区别&#xff1f;SQL注入空格被过滤&#xff0c;有什么绕过方式&#xff1f;过滤了逗号&#xff0c;有什么绕过方式&…