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 ...
随机推荐
- 安装npm后,nrm ls报错问题
一.nrm : 无法加载文件 E:\nodejs\nrm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135 ...
- 微软内推常见问题 Q&A
很高兴,已经成功内推 59 人拿到了微软 offer! 两年前,我就已经写过一篇微软面经,帮助到了不少人: 微软面经分享:如何更好地做好面试准备 在这两年的内推过程中,往往会有不少候选人来问我有关微软 ...
- IOS真机调试找不到设备:ERROR: Could not connect to lockdownd, error code -[x]
报错信息: Could not connect to lockdownd, error code -3 解决方法:修改var/db/lockdown文件夹的读写权限 在终端找到文件夹cd var/db ...
- 关于 pip 的 15 个使用小技巧
认识pip 众所周知,pip可以对python的第三方库进行安装.更新.卸载等操作,十分方便. pip的全称:package installer for python,也就是Python包管理工具. ...
- 攻防世界pwn高手区——pwn1
攻防世界 -- pwn1 攻防世界的一道pwn题,也有一段时间没有做pwn了,找了一道栈题热身,发现还是有些生疏了. 题目流程 拖入IDA中,题目流程如图所示,当v0为1时,存在栈溢出漏洞.在gdb中 ...
- Java面向对象12——static详解
static package oop.demon01.demon07; // static : public class Student { private static int a ...
- Java基础——逻辑运算符、位运算符
逻辑运算符.位运算符.三元运算符 逻辑运算符 public class Demon05 { public static void main(String[] args) { ...
- Bugku-web-md5 collision(NUPT_CTF)
总结了两道MD5绕过的题目. 根据MD5的特性,有两点漏洞 1.两个开头为0的md5值相同. 2.md5不能处理数组. 3.==用法,0 == 字符串是成立的,从而可以绕过MD5检查. 根据特性,我们 ...
- Burp - Turbo Intruder
Turbo Intruder 基础使用总结,把Python代码都记录下,要是有啥骚姿势,求各位师傅交流. 个人感觉超强的一款Burp插件,反正超快 Link: https://github.com/P ...
- 数据结构与算法-排序(六)堆排序(Heap Sort)
摘要 堆排序需要用到一种数据结构,大顶堆.大顶堆是一种二叉树结构,本质是父节点的数大于它的左右子节点的数,左右子节点的大小顺序不限制,也就是根节点是最大的值. 这里就是不断的将大顶堆的根节点的元素和尾 ...