multipass指定virualbox搭建k8s集群(选择docker作为默认容器)
前言
上篇文章安装的k3s默认使用的是containerd作为容器,并且是用的轻量级的虚拟化方式。
默认的k3s用的是containerd,下面安装一个docker版本的,并结合virualbox,更愉快地玩耍。
踩了两个大坑
- multipass得指定网卡,要不master和worker不能互通
- k3s得指定ip解决agent安装问题,要不会报https不能通过错误
参考文章https://github.com/k3s-io/k3s/issues/1523
步骤
初始化三台虚拟机
sudo multipass set local.driver=virtualbox
multipass launch --name master --network en7 --mem 1G --disk 3G 18.04
multipass launch --name worker1 --network en7 --mem 1G --disk 3G 18.04
multipass launch --name worker2 --network en7 --mem 1G --disk 3G 18.04
这里的en7是我通过ifconfig找到的192地址的网卡

我们打开virualbox可以查看到这几台机器
sudo VirtualBox

统一安装docker
使用multipass shell进入虚拟机安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
修改docker镜像源
# vim /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com"
]
}
# 重启
systemctl restart docker.service
查看masterIP
multipass ls

这里我的master的ip是192.168.44.32
安装master节点(重点设置)
通过 multipass shell master进入master,执行
export K3S_NODE_NAME=master
export K3S_EXTERNAL_IP=192.168.44.32
export INSTALL_K3S_EXEC="--docker --node-ip=$K3S_EXTERNAL_IP --node-external-ip=$K3S_EXTERNAL_IP"
export INSTALL_K3S_MIRROR=cn
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | sh -
安装完成如下
查看master的token
cat /var/lib/rancher/k3s/server/node-token
这里我的token是
K1016f9485d04e840ff56fd8d6ca2af3f9a0403795f8c97602396ea3c73d7ff363f::server:8594ea32dca695d9f14b6df06e10f71e
这个token是用来后续安装worker节点用的
安装worker节点
通过multipass shell worker1进入worker1执行
export K3S_URL="https://192.168.44.32:6443"
export K3S_TOKEN="K1016f9485d04e840ff56fd8d6ca2af3f9a0403795f8c97602396ea3c73d7ff363f::server:8594ea32dca695d9f14b6df06e10f71e"
export K3S_NODE_NAME=worker1
export INSTALL_K3S_MIRROR=cn
export INSTALL_K3S_EXEC="--docker"
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | sh -
安装完成如下

我们可以用
systemctl status k3s-agent
查看下agent是否启动正常

我们再用同样的方式安装worker2,进入worker2执行
export K3S_URL="https://192.168.44.32:6443"
export K3S_TOKEN="K1016f9485d04e840ff56fd8d6ca2af3f9a0403795f8c97602396ea3c73d7ff363f::server:8594ea32dca695d9f14b6df06e10f71e"
export K3S_NODE_NAME=worker2
export INSTALL_K3S_MIRROR=cn
export INSTALL_K3S_EXEC="--docker"
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | sh -
安装完成后,我们在master看下集群信息
kubectl get node -o wide

这就代表安装完成了
测试
这里我创建了一个自己的文件夹存放yaml
mkdir chenqionghe
cd chenqionghe
部署一个nginx的deployment
我们来创建一个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

这里看到已经正常启动了
部署一个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
我们kubectl get svc用查看一下svc
可以看到svc已经部署成功
访问一下


这种方法安装的好处,就是我们可以使用docker,而不需要再去了解containerd,下面是直接在worker1机器用docker ps查看的结果

就是这么简单,你学会了嘛~
multipass指定virualbox搭建k8s集群(选择docker作为默认容器)的更多相关文章
- 教你用multipass快速搭建k8s集群
目录 前言 一.multipass快速入门 安装 使用 二.使用multipass搭建k8s集群 创建3台虚拟机 安装master节点 安装node节点 测试k8s集群 三.其他问题 不能拉取镜像:报 ...
- kubeadm 搭建 K8S集群
kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
- 搭建K8S集群
一.前言 我们将现有的虚拟机称之为Node1,用作主节点.为了减少工作量,在Node1安装Kubernetes后,我们利用VirtualBox的虚拟机复制功能,复制出两个完全一样的虚拟机作为工作节点. ...
- 1 搭建K8s集群
官网:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing ...
- CentOS7 使用 kubeadm 搭建 k8s 集群
一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...
- Rancher 下图形界面 搭建 K8S 集群
首先我们准备4台 2核3G 的 centos 7 温馨提示:先安装好一台 CentOS 的虚拟机,并且安装好 docker,永久关闭防火墙. 再这个基础上我们分别克隆出四台 Rancher.K8S1. ...
- 从0到1搭建k8s集群系列1:安装虚拟机及docker
前言 本系列文章记录了本人学习k8s集群搭建的过程,从k8s基本组件的安装.到部署mysql服务到k8s集群.部署web项目到k8s集群以及安装可视化界面管理工具kuboard. 因为k8s的组件安装 ...
- 关于使用kubeoperator搭建k8s集群使用containerd作为容器运行时,从自己搭建的habor仓库拉取镜像的有关说明
1.kubepi界面添加habor仓库信息,并授权给k8s集群 这一步的操作是当在工作负载选择从harbor仓库拉取镜像时会自动创建有关的secrets信息,从而不用事先手动创建了(有别于kuboar ...
随机推荐
- Django orm 常用查询筛选总结
本文主要列举一下django orm中的常用查询的筛选方法: 大于.大于等于 小于.小于等于 in like is null / is not null 不等于/不包含于 其他模糊查询 model: ...
- (Opencv02)图片展示
(Opencv02)图片展示 在程序里我们怎么把图片显示出来呢? 这里需要记一个自定义函数就好啦! def cv_show(name, img): cv2.imshow(name, img) ...
- Java 正则表达式 简单用法
正则表达式的具体写法网上有很多了,这里只记录在 Java 中怎么使用. java.util.regex.Matcher.java.util.regex.Pattern 主要有: String.matc ...
- Qt学习-ListView的拖拽
最近在学习Qt 里面的QML, 使用DropArea和MouseArea实现了ListView的拖拽. 想起了当年用Delphi, 差不多一样的东西, 不过那是2000了. Delphi也是不争气啊, ...
- [ZJOI2010]基站选址,线段树优化DP
G. base 基站选址 内存限制:128 MiB 时间限制:2000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离 ...
- 【NLP学习其四】如何构建自己用于训练的数据集?什么是词性标注?
数据集与词性标注 数据集是NLP中的重要一环. 但是提到数据集,很多人的第一个想法可能是:"这玩意从网上下载就好了,不用管". 真的不用管?最开始我也是这么认为的 于是我直奔CoN ...
- Prometheus MySQL监控+grafana展示
前言 最近爱上了研究各种杂七杂八的技术. Prometheus是现如今最火的监控软件之一.做为一个运维DBA,不会这个可就OUT了. 本篇博客,演示一下prometheus之通过mysql expor ...
- springboot自定义ObjectMapper序列化、配置序列化对LocalDateTime的支持
背景 问题1:项目中使用默认自带的jackson进行前后端交互,实现数据对象的序列化和反序列化,默认的ObjectMapper采用小驼峰的格式,但是调用其他业务的http接口时,ObjectMappe ...
- JIPB | 两篇连发:华中农大黄俊斌团队报道二羟基异丁酰化调控稻曲病菌致病新机制
水稻是我国重要的粮食作物,稻曲病是水稻三大病害之一,不仅造成稻米产量损失,更重要的是稻曲球中的稻曲菌素的毒性和致畸作用,给人畜健康带来严重威胁.病原菌对植物的侵袭是由病原菌的毒力和植物免疫系统相互作用 ...
- RHCSA_DAY05
计算机硬件组成部分 输入设备:键盘.鼠标.触控屏等 主机设备:主板.中央处理器(CPU).主存储器(内存).网卡.声卡.显示卡等 输出设备:屏幕.耳机.打印机.投影仪等 外部存储设备:硬盘.软盘.光盘 ...