前言

上篇文章安装的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作为默认容器)的更多相关文章

  1. 教你用multipass快速搭建k8s集群

    目录 前言 一.multipass快速入门 安装 使用 二.使用multipass搭建k8s集群 创建3台虚拟机 安装master节点 安装node节点 测试k8s集群 三.其他问题 不能拉取镜像:报 ...

  2. kubeadm 搭建 K8S集群

    kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...

  3. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  4. 搭建K8S集群

    一.前言 我们将现有的虚拟机称之为Node1,用作主节点.为了减少工作量,在Node1安装Kubernetes后,我们利用VirtualBox的虚拟机复制功能,复制出两个完全一样的虚拟机作为工作节点. ...

  5. 1 搭建K8s集群

    官网:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing ...

  6. CentOS7 使用 kubeadm 搭建 k8s 集群

    一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...

  7. Rancher 下图形界面 搭建 K8S 集群

    首先我们准备4台 2核3G 的 centos 7 温馨提示:先安装好一台 CentOS 的虚拟机,并且安装好 docker,永久关闭防火墙. 再这个基础上我们分别克隆出四台 Rancher.K8S1. ...

  8. 从0到1搭建k8s集群系列1:安装虚拟机及docker

    前言 本系列文章记录了本人学习k8s集群搭建的过程,从k8s基本组件的安装.到部署mysql服务到k8s集群.部署web项目到k8s集群以及安装可视化界面管理工具kuboard. 因为k8s的组件安装 ...

  9. 关于使用kubeoperator搭建k8s集群使用containerd作为容器运行时,从自己搭建的habor仓库拉取镜像的有关说明

    1.kubepi界面添加habor仓库信息,并授权给k8s集群 这一步的操作是当在工作负载选择从harbor仓库拉取镜像时会自动创建有关的secrets信息,从而不用事先手动创建了(有别于kuboar ...

随机推荐

  1. vue3源码难学,先从petite-vue开始吧

    如今这个世道,作为一个有几年工作经验的前端,不学点框架源码都感觉要被抛弃了,react或vue要能吹吹牛吧,最好能造个轮子,听说vue3源码好学点,那么学学vue3,但是学起来还是那么费劲,感觉快放弃 ...

  2. windows10激活方法

    原文转自:http://www.ylmfwin100.com/ylmf/8643.html 现在市面上大致有两种主流激活方法,一种是通过激活码来激活,另外一种是通过激活工具来激活.但是激活工具有个弊端 ...

  3. MySQL中特别实用的几种SQL语句【转】

    一.插入或替换 如果我们想插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录. 情景示例:这张表存的每个客户最近一次交易订单信息,要求保证单个用户数据不重复录入,且执行效 ...

  4. list实现从大到小排序

    public static void main(String[] args) { List<Integer> list=new ArrayList<Integer>(); // ...

  5. Redis挂了,流量把数据库也打挂了,怎么办?

    你好呀,我是歪歪. 是这样的,前几天有个读者给我发消息,说面试的时候遇到一个场景题: 他说他当时,一时间竟然找不到回答问题的角度,感觉自己没有回答到点子上. 我仔细想了一下,确实是感到这个问题有一丝丝 ...

  6. 过渡——transition

    ① 设置参与过渡的属性 transition-property:  ;      all / transform / 参与过渡的属性 ② 设置过渡的时长 transition-duration:  s ...

  7. Genymotion模拟器安装ARM架构编译应用失败解决方案

    我们在安装一些应用到Genymotion模拟器会提示:adb: failed to install xx.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: ...

  8. ASP.NET Core下FreeSql的仓储事务

    ASP.NET Core下FreeSql的仓储事务 第一步:配置 Startup.cs 注入 引入包 dotnet add package FreeSql dotnet add package Fre ...

  9. AndroidStudio快捷键总结

    本文总结一下最近常用的命令: 1.格式化代码:Ctrl+Alt+L[可能与电脑快捷键冲突,修改方法:在设置里点击Keymap 搜索:Reformat Code] 2.复制当前类:Ctrl+Shift+ ...

  10. HCIA-网络层包结构

    网络层 关心-->转发 IPV4协议 IPV6协议 寻址 转发 标识位置 IPV6: 86DD MAC定位局部 网络定位全局 对于上层数据如果过大,网络层可以分组,实现分组转发 环路:发送了一个 ...