教你用multipass快速搭建k8s集群
前言
multipass相当于docker版本的虚拟机,k3s是轻便版本的k8s,两者结合让你使用k8s就像德芙一样纵享丝滑。
以下内容由chenqionghe倾情奉献,手把手教你使用multipass和搭建搭建k8s集群,giao~
一、multipass快速入门
安装
下载地址:multipass.run/
这里我是安装的mac版的
使用
- 获取版本信息
multipass version
- 查找镜像
multipass find
Image Aliases Version Description
snapcraft:core18 20201111 Snapcraft builder for Core 18
snapcraft:core20 20201111 Snapcraft builder for Core 20
snapcraft:core 20210430 Snapcraft builder for Core 16
18.04 bionic 20210817 Ubuntu 18.04 LTS
20.04 focal,lts 20210825 Ubuntu 20.04 LTS
anbox-cloud-appliance latest Anbox Cloud Appliance
minikube latest minikube is local Kubernetes
- 创建虚拟机
语法:multipass launch -n 虚拟机名称
-n, --name: 名称
-c, --cpus: cpu核心数, 默认: 1
-m, --mem: 内存大小, 默认: 1G
-d, --disk: 硬盘大小, 默认: 5G
multipass launch -n ubuntu-lts -c 4 -m 4G -d 40G
- 进入虚拟机
multipass shell 虚拟机名称
- 不进入虚拟机直接执行命令
语法:multipass exec 虚拟机名称 --命令
multipass exec ubuntu-lts -- ls
- 查看虚拟机列表
multipass ls
multipass list
- 查看虚拟机信息
multipass info 虚拟机名称
- 重启虚拟机
multipass restart 虚拟机名称
- 删除虚拟机
# 普通删除(可恢复)
multipass delete 虚拟机名称
# 彻底删除
multipass delete --purge 虚拟机名称
- 恢复删除虚拟机
multipass recover 虚拟机名称
- 启动虚拟机
multipass start 虚拟机名称
- 暂停虚拟机
multipass stop 虚拟机名称
- 挂载宿主机目录
multipass mount 宿主机目录 虚拟机名称:虚拟机目录
- 卸载挂载目录
multipass unmount 虚拟机名称:虚拟机目录
二、使用multipass搭建k8s集群
创建3台虚拟机
multipass launch --name master --mem 1G --disk 3G 18.04
multipass launch --name worker1 --mem 1G --disk 3G 18.04
multipass launch --name worker2 --mem 1G --disk 3G 18.04
创建完成,查看一下
multipass ls
安装master节点
这里是用的k3s,参考k3s文档
multipass exec master -- /bin/bash -c "curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -"
安装完成后,我们查看一下master的token,用来安装k3s-agent
multipass exec master -- /bin/bash -c "sudo cat /var/lib/rancher/k3s/server/node-token"
这里我的token是
K10f1a18fb4cc78db2ef656ac22bf6881f600ac1b19024a2b00f5cc51b92c108eee::server:be939c868d27bbebf0e42cb2d856432f
安装node节点
# 设置变量
K3S_URL="https://192.168.64.2:6443"
K3S_TOKEN="K10f1a18fb4cc78db2ef656ac22bf6881f600ac1b19024a2b00f5cc51b92c108eee::server:be939c868d27bbebf0e42cb2d856432f"
# 安装worker1
multipass exec worker1 -- /bin/bash -c "curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=${K3S_URL} K3S_TOKEN=${K3S_TOKEN} sh -"
# 安装worker2
运行后可以用,检查一下agent是否正常启动
systemctl status k3s-agent
这里代表都正常运行了,我们再来测试一直k8s集群是否已经正常启动,进入master节点运行
kubectl get nod
测试k8s集群
我们来创建一个nginx的deployment
- nginxdemo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginxdemo
spec:
replicas: 1
selector:
matchLabels:
name: nginxdemo
template:
metadata:
labels:
name: nginxdemo
spec:
containers:
- name: nginxdemo
image: nginx
ports:
- containerPort: 80
执行一下
kubectl apply -f nginxdemo.yaml
可以看到已经正常运行了
为了访问我们的nginx,我们部署一个service
- nginxsvc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginxsvc
spec:
type: NodePort
ports:
- port: 82
protocol: TCP
targetPort: 80
name: http
nodePort: 30055
selector:
name: nginxdemo
这里的用NodePort的方式来访问,我们来创建一下
kubectl apply -f nginxsvc.yaml
可以看到,svc已经部署成功,并给出了CLUSTER-IP,10.43.148.7,我们可以用两种方式访问nginxdemo
- 在集群内用http://10.43.148.7:82/
- 在集群外用http://192.168.64.2:30055/、http://192.168.64.3:30055/、http://192.168.64.4:30055/
我们分别来访问一下
OK,能正常访问,集群搭建完毕~
三、其他问题
不能拉取镜像:报ImagePullBackOff错误
参考了这篇文章:k3s设置国内加速源
查看
crictl info |grep registry
默认镜像源,是docker.io
我们修改一下镜像源,在/var/lib/rancher/k3s/agent/etc/containerd/config.toml添加
# 设置镜像源
[plugins.cri.registry.mirrors]
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["https://docker.mirrors.ustc.edu.cn"]
重启k3s
sudo systemctl restart k3s
教你用multipass快速搭建k8s集群的更多相关文章
- kubeadm快速搭建k8s集群
环境 master01:192.168.1.110 (最少2核CPU) node01:192.168.1.100 规划 services网络:10.96.0.0/12 pod网络:10.244.0.0 ...
- 2.使用kubeadm快速搭建k8s集群
准备工作: 时间同步 systemctl stop iptables.servicesystemctl stop firewalld.service 安装docker wget https://mir ...
- kubeadm 搭建 K8S集群
kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...
- 菜鸟系列k8s——快速部署k8s集群
快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...
- VMware 克隆linux后找不到eth0(学习hadoop,所以想快速搭建一个集群)
发生情况: 由于在学习hadoop,所以想快速搭建一个集群出来.所以直接在windows操作系统上用VMware安装了CentOS操作系统,配置好hadoop开发环境后,采用克隆功能,直接克 ...
- 快速搭建Jenkins集群
关于Jenkins集群 在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故 ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
- 使用RKE快速部署k8s集群
一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...
- centos7 快速搭建redis集群环境
本文主要是记录一下快速搭建redis集群环境的方式. 环境简介:centos 7 + redis-3.2.4 本次用两个服务6个节点来搭建:192.168.116.120 和 192.168.1 ...
随机推荐
- 认识微信小程序开发页面
先认识一下开发界面,当前是上节中刚刚新建好的一个小程序. 模拟窗口当前页面的路径可以查看左下角Page Path,可以看到当前页面的路径为pages/index/index,正好和app.json里面 ...
- SpringBoot+ELK日志系统搭建
一.ELK是什么 "ELK"是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash 和 Kibana.Elasticsearch 是一个搜索和分 ...
- tomcat与springmvc 结合 之---第17篇 StandContext容器和SpringMVC的WebApplicationContext的联系
writedby 张艳涛, 上一篇分析了,dispatcherservlet通过getServletConfig 方法获取了web.xml定义的<param-init>属性的过程 那么在如 ...
- jvm源码解读--02 Array<u1>* tags = MetadataFactory::new_writeable_array<u1>(loader_data, length, 0, CHECK_NULL); 函数引入的jvm内存分配解析
current路径: #0 Array<unsigned char>::operator new (size=8, loader_data=0x7fd4c802e868, length=8 ...
- 【LeetCode】98. 验证二叉搜索树
98. 验证二叉搜索树 知识点:二叉树:递归 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大 ...
- docker容器网络bridge
我们知道docker利用linux内核特性namespace实现了网络的隔离,让每个容器都处于自己的小世界里面,当这个小世界需要与外界(宿主机或其他容器)通信的时候docker的网络就发挥作用了,这篇 ...
- SpringBoot - 根据目录结构自动生成路由前缀
目录 前言 具体实现 配置文件指定基础包 自动补全路由前缀处理类 自动补全路由前缀配置类 测试类 测试 前言 本文介绍如何根据目录结构给RequestMapping添加路由前缀(覆盖RequestMa ...
- 控制流程之if判断与while、for循环
一.if判断 1.什么是if判断? 接收用户输入的名字 接受用户输入的密码 如果用户输入的名字=正确的名字 并且 用户输入的密码=正确的密码 告诉用户登录成功 否则, 告诉用户登录失败 2.为何要有i ...
- springboot的单元测试(总结两种)
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- Tengine2.3+openssl1.1.1支持TLS1.3
安装包下载: openssl1.1.1 链接:https://pan.baidu.com/s/1-qCDhkLtlkT0fdwKdVuh2g 提取码:0ncc pcre3.2.1 链接:https:/ ...