iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >microk8s 搭建
  • 165
分享到

microk8s 搭建

microk8s 2023-01-31 08:01:20 165人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

microk8s不通过虚拟机但与主机隔离方式,快速轻巧安装kubernetes。通过在单个快照包中打包Kubernetes,Docker.io,iptables和CNI的所有上游二进制文件来实现此隔离。 snap包是一个应用程序容器 - 您

microk8s不通过虚拟机但与主机隔离方式,快速轻巧安装kubernetes。通过在单个快照包中打包Kubernetes,Docker.io,iptables和CNI的所有上游二进制文件来实现此隔离。 snap包是一个应用程序容器 - 您可以将其想象为Docker容器的轻量级版本。它使用了许多相同的底层技术进行隔离,而没有网络隔离的所有开销。最终结果是一种超越任何一个发行版的包格式,因为快照可以安装在大多数linux操作系统上,同时还利用原子更新,升级失败回滚以及来自用户主机的软件限制级别等功能。

 

microk8s可以说是minikube在Linux平台上的一个替代品。

 

环境说明

配置操作系统ip地址
1核2Gubuntu-16.04.5-server-amd64192.168.0.162

 

 

 

通过 microk8s 可以非常快速的搭建起一个 Kubernetes 单机环境,安装极其非常方便,通过 snap 命令一键安装:

ubuntu 自带 snap 命令,可以直接执行,Centos 需要先安装 snap。

 

安装docker

apt-get  -y docker.io
apt-get clean all

 

注意:microk8s依赖于docker,否则执行microk8s命令,会卡顿,甚至报错!

 

安装 1.12版本

sudo snap install microk8s --classic --channel=1.12/stable
# 如需卸载,使用命令:
# sudo snap remove microk8s

 

注意:安装最新版本,使用命令:sudo snap install microk8s --classic 

但是这里并没有安装最新版本,为什么呢?因为新版没有microk8s.docker命令。

如果没有这个命令。必须使用代理方式,下载镜像!

下文,会提到,如何使用microk8s.docker命令,来避免访问gfw问题。

 

// 1. 启动
microk8s.start
 
// 2. 关闭
microk8s.stop
 
// 3. kubectl 操作
// --- 查看 cluster
microk8s.kubectl cluster-info
 
// --- 查看 nodes
microk8s.kubectl get nodes
 
// --- 查看 pods
microk8s.kubectl get pods
 
// 4. docker 操作
microk8s.docker ps
microk8s.docker images

 

可以看到,在 microk8s 环境中执行 kubectl 时,需要在 kubectl 命令前添加前缀 microk8s.

为了方便,可以为 microk8s.kubectl 添加一个 别名:

snap alias microk8s.kubectl kubectl

 

kubectl 命令自动补全

echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

 

停止 启动 microk8s

microk8s.stop
 
microk8s.start
 
microk8s.status

 

microk8s.enable dns

 

查看dns运行状态

root@ubuntu:~# kubectl get pods -n kube-system
NAME                        READY   STATUS    RESTARTS   AGE
kube-dns-67b548dcff-75hGC   0/3     ContainerCreating   0          45

 

查看pod详情

kubectl describe po kube-dns-67b548dcff-75hgc -n kube-system

 

会提示错误:

pulling image "k8s.gcr.io/pause:3.1"
...

 

解决gfw问题

在国内,由于gfw的原因, 我们是访问不了Google的镜像服务的, 因此很多时候我们会碰到类似这样的错误failed pulling image k8s.gcr.io/pause:3.1。这个问题我们可以通过手动下载镜像来解决。做法如下:

microk8s.docker pull mirrorgooglecontainers/pause-amd64:3.1microk8s.docker tag mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause:3.1

 

microk8s会自带一个docker, 如果你的系统里已经安装了docker的话, 它还是用自带的那个docker,也就是microk8s.docker。因此,在解决上面提到的镜像问题的时候, 一定要使用microk8s.docker命令来操作, 使用系统原有的docker是不起作用的。能否让microk8s使用系统的docker楼主还没研究出来

 

除了 k8s.gcr.io/pause:3.1 之外,还需要其他镜像

microk8s.docker pull mirrorgooglecontainers/k8s-dns-kube-dns-amd64:1.14.7
microk8s.docker tag mirrorgooglecontainers/k8s-dns-kube-dns-amd64:1.14.7 gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7
 
microk8s.docker pull mirrorgooglecontainers/k8s-dns-sidecar-amd64:1.14.7
microk8s.docker tag mirrorgooglecontainers/k8s-dns-sidecar-amd64:1.14.7 gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7
 
microk8s.docker pull mirrorgooglecontainers/k8s-dns-dnsmasq-nanny-amd64:1.14.7
microk8s.docker tag mirrorgooglecontainers/k8s-dns-dnsmasq-nanny-amd64:1.14.7 gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7

 

查看镜像

复制代码

root@ubuntu:~# microk8s.docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
mirrorgooglecontainers/pause-amd64                     3.1                 da86e6ba6ca1        17 months ago       742kB
k8s.gcr.io/pause                                       3.1                 da86e6ba6ca1        17 months ago       742kB
gcr.io/google_containers/k8s-dns-sidecar-amd64         1.14.7              db76ee297b85        19 months ago       42MB
mirrorgooglecontainers/k8s-dns-sidecar-amd64           1.14.7              db76ee297b85        19 months ago       42MB
mirrorgooglecontainers/k8s-dns-kube-dns-amd64          1.14.7              5d049a8c4eec        19 months ago       50.3MB
gcr.io/google_containers/k8s-dns-kube-dns-amd64        1.14.7              5d049a8c4eec        19 months ago       50.3MB
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64   1.14.7              5feec37454f4        19 months ago       41MB
mirrorgooglecontainers/k8s-dns-dnsmasq-nanny-amd64     1.14.7              5feec37454f4        19 months ago       41MB

复制代码

 

删除掉dns pod

kubectl delete po kube-dns-67b548dcff-75hgc -n kube-system --grace-period=0 --force

 

再次查看dns pod,状态就正常了

root@ubuntu:~# kubectl get pods -n kube-system
NAME                        READY   STATUS    RESTARTS   AGE
kube-dns-67b548dcff-75hgc   3/3     Running   0          45m

 

下载Nginx镜像

microk8s.docker pull nginx:1.7.9

 

新建service文件 

vim nginx-service.yaml

 

内容如下:

apiVersion: v1
kind: Service
metadata:
  name: nginx-deployment
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 80
      protocol: tcp
      name: Http
      nodePort: 30080
  selector:
    name: nginx

 

新建rc文件 

vim nginx-rc.yaml

内容如下:

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      name: nginx
  replicas: 1 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

 

启动应用

kubectl apply -f nginx-service.yaml
kubectl apply -f nginx-rc.yaml

 

使用浏览器访问

http://192.168.0.162:30080/

 

效果如下:

1.png

 

对于非公网的镜像,不能使用 microk8s.docker 命令来下载镜像。这个时候,需要使用私有仓库了!

开启自带的reGIStry

microk8s.enable registry

 

访问私有库地址

wget http://localhost:32000/

如果输出:

--2019-06-14 15:28:09--  http://localhost:32000/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:32000... connected.
HTTP request sent, awaiting response...

表示无法连接!!!

 

那么使用以下命令

microk8s.docker tag nginx:1.7.9 localhost:32000/nginx:1.7.9
microk8s.docker push localhost:32000/nginx:1.7.9

就会报错:

The push refers to repository [localhost:32000/nginx]
Get http://localhost:32000/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

 

解决方法

vi /etc/hosts

注释掉这一行

#::1     localhost ip6-localhost ip6-loopback

 

再次使用wget命令,就正常了!

root@ubuntu:/root/Mysql# wget http://localhost:32000/
--2019-06-14 15:28:42--  http://localhost:32000/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:32000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 0
Saving to: ‘index.html’

index.html                      [ <=>                                      ]       0  --.-KB/s    in 0s      

2019-06-14 15:28:42 (0.00 B/s) - ‘index.html’ saved [0/0]

 

下载别的私有库

对于下载别的私有库,必须修改文件

vim /var/snap/microk8s/current/args/docker-daemon.JSON

 

增加内网中的私有库地址

{
  "insecure-registries" : ["localhost:32000","192.168.0.45:5000"]
}

 

重启docker

/etc/init.d/docker restart

 

下载内网中私有库的镜像

root@ubuntu:/root/mysql# microk8s.docker pull 192.168.0.45:5000/mysql5.7.23
Using default tag: latest
latest: Pulling from mysql5.7.23
ad965b2cd940: Downloading  20.15MB/43.02MB
08cdc197aeb5: Download complete 
87da4a64f82f: Download complete 
1f15cc32d2ec: Download complete 
3184f9337a95: Download complete 
5586ed3c006c: Downloading  11.09MB/111.7MB
6be3e1b4270e: Download complete 
2eb841e4f573: Download complete 
6e39824b78a8: Download complete 
d9c21a3025f7: Download complete 
3c9f6c373477: Download complete



本文参考链接:

https://www.jianshu.com/p/2f5eb7ef1d0f

http://opentutorial.info/kubernetes/k8s/microk8s/

https://itnext.io/microk8s-docker-registry-c3f401faa760

https://GitHub.com/ubuntu/microk8s/issues/196

https://github.com/ubuntu/microk8s/issues/173


--结束END--

本文标题: microk8s 搭建

本文链接: https://www.lsjlt.com/news/193566.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • microk8s 搭建
    microk8s不通过虚拟机但与主机隔离方式,快速轻巧安装Kubernetes。通过在单个快照包中打包Kubernetes,Docker.io,iptables和CNI的所有上游二进制文件来实现此隔离。 snap包是一个应用程序容器 - 您...
    99+
    2023-01-31
    microk8s
  • centos7搭建gitlab服务器搭建
    在当今的技术领域,代码管理和版本控制变得越来越重要。为了组织和管理代码,越来越多的开发团队开始使用GitLab进行代码管理。GitLab是一个流行的基于Git的开源代码管理平台,提供了多种功能,例如版本控制、问题跟踪、CI/CD等。在本篇文...
    99+
    2023-10-22
  • suiteCrm搭建
    php sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm -Uvh https://mirror.webtatic.com/yum/e...
    99+
    2023-09-02
    php nginx 服务器
  • LNMP搭建
    一、编译安装nginx1.1 关闭防火墙,将安装nginx所需软件包传到/opt目录下并解压1.2 安装依赖包1.3 创建运行用户与组1.4 编译安装Nginx1.5 检查配置文件是否配置...
    99+
    2023-09-02
    nginx 运维 服务器
  • vscode搭建 搭建python Django环境方式
    目录vscode搭建 搭建python Django环境总结vscode搭建 搭建python Django环境 这里使用pip安装的方式,打开命令行,输入执行: pip ins...
    99+
    2023-01-31
    vscode搭建 搭建python Django环境
  • 如何搭建云服务器搭建wordpress
    搭建云服务器可以使用以下方法: 安装云服务器:首先需要安装云服务器的基础配置,这里推荐使用 Microsoft Azure 云服务器进行部署。如果不想自己安装,也可以参考下面的步骤。 选择云服务器:选择云服务器的主机型号和云主机的类型。...
    99+
    2023-10-26
    服务器 wordpress
  • DG搭建之windos上搭建物理standby
    注:以下全部sql如果执行有误,请注意分号(;),转发文档请注明作者和出处。 ...
    99+
    2024-04-02
  • win10怎么搭建本地php环境搭建
    在WEB开发中,PHP也许是最常用的服务器端脚本语言之一。为了更加方便的开发与测试,希望在本地电脑上搭建PHP环境,那么如何实现呢?下面是具体的步骤说明。步骤一:安装Web服务器搭建PHP环境的关键是安装Web服务器,Windows系统下可...
    99+
    2023-05-14
  • 【域控服务搭建】Windows Server 2012搭建域
    实验设备: win11,win7,windows server 2012 实验准备: Windows server 2012设置好静态IP,保证相互之间可以ping通 写在前面的话:在Linux加入域那里可能会发现域名跟刚开始搭建的域名不同...
    99+
    2023-08-19
    linux 服务器
  • 原神私服搭建二: 搭建服务端
    原神私服搭建二: 搭建服务端 所需资源: 一:下载jar包 链接:https://github.com/Grasscutters/Grasscutter/releases 二:下载资源 resources(下面两个链接任选其一) 链接一...
    99+
    2023-08-17
    java 开发语言 游戏 mongodb
  • Linux搭建实验环境搭建(nginx,mysql,java.tomcat)
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会...
    99+
    2023-08-31
    linux java nginx
  • windows下怎么搭建git服务器搭建
    在Windows平台下,搭建Git服务器可以让用户更好地管理自己的代码库。在接下来的文章中,我们将教你如何在Windows平台下搭建Git服务器。一、安装Git首先,我们需要从Git官网上下载最新版本的Git。下载完成后,我们可以使用默认选...
    99+
    2023-10-22
  • vscode搭建golang
    VS Code 是一款开源的、跨平台的、轻量级的集成开发环境(IDE),可以方便地进行开发和调试工作。Golang 是一门由 Google 开发的编程语言,受到了越来越多的开发者的青睐。本文将详细介绍如何在 VS Code 中搭建 Gola...
    99+
    2023-05-22
  • golang搭建websocket
    Golang是一种快速编译、高效、安全的编程语言,在Web开发方面也有着广泛的应用。其中,使用Golang搭建Websocket是一个非常流行的应用场景。本文将介绍如何使用Golang搭建一个Websocket应用程序。一、什么是Webso...
    99+
    2023-05-22
  • vps搭建golang
    随着互联网的发展,越来越多的人开始涉足互联网开发领域。其中,golang这门编程语言因其高效的并发机制和简洁的语法逐渐受到了开发者们的青睐。在使用golang进行开发时,我们需要有一个可靠的运行环境,这就需要借助VPS进行搭建。本文将介绍如...
    99+
    2023-05-19
  • Centos7搭建zabbix6.0
    此方法适用于zabbix6以上版本 zabbix6.0前期环境准备:Lamp(linux httpd mysql8.0 php) mysql官网下载位置:https://dev.mysql.com/downloads/mysql/ ...
    99+
    2023-09-04
    linux 安全 运维
  • Ubuntu 搭建etcd
    etcd是一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。提供配置共享和服务发现的系统比较多,其中最为大家熟知的是[Zookeeper](后文简称ZK),而ETCD可...
    99+
    2023-01-30
    Ubuntu etcd
  • CentOS7搭建jenkins
    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 安装环境操作系统:centos 7.6 先安装epelyum&n...
    99+
    2023-01-31
    jenkins
  • centos7.3搭建zabbix3.4.4
    需要的一些包(所有的包都放在/opt目录下)zabbix-3.4.4.tar.gzboost_1_59_0.tar.gz mysql-5.7.14.tar.gzphp-7.0.9.tar.gz pcre-8.39.tar...
    99+
    2023-01-30
  • docker搭建php
    PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根...
    99+
    2023-09-27
    php 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作