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

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

使用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.lryc.cn/news/144867.html

相关文章:

  • Python数据分析 | 各种图表对比总结
  • linux系统(centos、ubuntu、银河麒麟服务、uos、deepin)判断程序是否已安装,通用判断方法:适用所有应用和命令的判断
  • Python3多线程/多进程解决方案(持续更新ing...)
  • 在`CentOS`中安装`Docker Engine`
  • [ VMware 虚拟机 ] 启动不了图形界面,报 “The system is running in low-graphics mode” 错误
  • 如何提高视频清晰度?视频调整清晰度操作方法
  • IO进程线程,文件与目录,实现linux任意目录下ls -la
  • R语言如果列表中有列表,且每个子列表有一个向量:如何转变为仅仅一个列表里面含有向量
  • nrm管理源仓库及发布私人npm包
  • 云计算——虚拟化中的网络架构与虚拟网络(文末送书)
  • B - 负环
  • 居中一个元素(水平+垂直居中)
  • React笔记(二)JSX
  • [多标签分类]MultiLabelBinarizer: 从one-hot 到multi-hot
  • 【校招VIP】前端算法考察之排序
  • 集创北方ICN6211 是一款MIPIDSI转RGB视频桥接IC
  • SMT制造中的产品质量检验和管理
  • 对接webservice接口时报错:发送方和接收方 Action 不匹配
  • python实现/直播服务器/聊天服务器/的多种解决方案
  • PbootCMS 3.0.4 SQL注入
  • SpringBoot异步方法支持注解@Async应用
  • UI/UX设计与前端开发:从零到一打造完美用户体验
  • Hadoop Hdfs基本命令
  • Spring Boot 整合MyBatis(超详细)
  • 【管理运筹学】第 6 章 | 运输问题(4,表上作业法 |闭回路调整法以及特殊情况 | 产销不平衡的运输问题)
  • Greenplum实用技巧
  • 以物联网为核心的智慧工地云平台:聚集智能技术,实现建筑工地智慧管理
  • Java项目-苍穹外卖-Day05-Redis技术应用
  • linux安装jmeter
  • 【笔记】泛型以及如何绕过泛型定义