Kubernetes的2种部署方式:Minikube开发环境+Kubeadm单节点集群环境

本人环境:Ubuntu18.04

     ---(CSDN格式显示有问题,如遇到第一个字显示不全,先下拉到文章中部,在拉回来就好了)

   基于 Minikube 的部署方式( Kubernetes 的本地实验环境)

基于Web 的环境易于访问,但不是持久性的。如果您想继续在可以回归和改变的工作空间中探索Kubernetes Minikube是一个不错的选择,其安装方便快捷。

Minikube可以在本地安装,并在虚拟机(VM)中运行简单的单节点Kubernetes集群。该集群功能齐全,包含所有核心Kubernetes组件。许多开发人员发现这足以进行本地应用程序开发。

Docker安装

检查docker是否正在运行:

$ sudo systemctl status docker

● docker.service - Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset:

Active: inactive (dead)

Docs: https://docs.docker.com

(Ubuntu的的的的中docker叫docker.io,若已存在旧版本就先卸载$ sudo apt-get remove docker docker-engine docker.io

进行docker安装:

$ sudo apt-get install -y docker.io

安装虚拟机:

下载的DEB安装包:HTTPS://www.virtualbox.org/wiki/Linux_Downloads

注意: Minikube还支持 - vm-driver=none在主机上而不是在VM中运行Kubernetes组件的选项。使用此驱动程序需要Docker和Linux环境,但不需要管理程序。

安装kubectl

kubectl是Kubernetes命令行工具可在Kubernetes上部署和管理应用程序使用kubectl,可以检查群集资源;创建,删除和更新组件;查看新集群;并提交示例应用程序。

1.ubuntu上使用snap内核安装

$ sudo snap install kubectl --classic

kubectl 1.12.2 from Canonical✓ installed

2.测试安装成功

kubectl version

安装minikube

1. 使用阿里镜像安装(最新v30 ,参看步骤4 修改至您目前最新版本):

$ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0 30 .0 / minikube-linux-amd64 && chmod + x minikube && sudo mv minikube / usr / local / bin /

2.官方安装方式(需翻墙):

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.30.0/minikube-linux-amd64&& chmod + x minikube && sudo cp minikube / usr / local / bin /&& rm minikube

3. 在命令行查看安装是否成功

raini @ biyuzhe:〜$ minikube

Minikube是一个CLI工具,用于配置和管理针对开发工作流程优化的单节点Kubernetes集群。

4.查看当前可用版本信息:

https://github.com/kubernetes/minikube/releases

启动minikube

并下载minikube iso,kubelet,kubeadm

$ minikube start --registry-mirror=https://registry.docker-cn.com

Starting local Kubernetes v1.10.0 cluster...

Starting VM...

Downloading Minikube ISO

Getting VM IP address...

Moving files into cluster...

Downloading kubeadm v1.10.0

Downloading kubelet v1.10.0

Finished Downloading kubeadm v1.10.0

Finished Downloading kubelet v1.10.0

Setting up certs...

Connecting to cluster...

Setting up kubeconfig...

Starting cluster components...

Kubectl is now configured to use the cluster.

Loading cached images from config file.

可支持不同的Kubernetes版本

# 比如安装Kubernetes v1.12.1

minikube start --registry-mirror=https://registry.docker-cn.com --kubernetes-version v1.12.1

 

验证是否成功:

$ kubectl获取节点

$ kubectl get pods --all-namespaces

Kubernetes控制面板

$ minikube仪表板

也可以通过命令查看:

$ kubectl获取cs

通过Minikube 本地运行Kubernetes

Minikube利用本地虚拟机环境部署Kubernetes,其基本架构如下图所示。

用户使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。一旦Minikube虚拟机启动,用户就可以使用熟悉的Kubectl CLI在Kubernetes集群上执行操作。

 

 

使用kubeadm创建单节点集群(可用于生产环境)

官方文档(较为繁琐):使用kubeadm创建单个主群集

添加源,添加键,安装 docker.io , kubelet , kubernetes-cni , kubea

添加源:

先到/etc/apt/sources.list.d/文件夹中手动创建文件kubernetes.list,在该文件中添加(使用中科大的源,否则要翻墙,或者速度太慢):

raini @ biyuzhe:〜$ sudo vim /etc/apt//sources.list.d/kubernetes.list

deb [arch = amd64] http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main

然后更新:

$ sudo apt-get update

后报错:

W:GPG错误:http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial InRelease:由于没有公司,无法验证下列签名:NO_PUBKEY 6A030B21BA07F4FB

E:仓库“http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial InRelease”没有数字签名。

N:无法安全地用该源进行更新,所以默认禁用该源。

原因是缺少相应的键:

添加错误中对应的密钥(错误中NO_PUBKEY后面的密钥的后8位,全写好像也没问题),运行:

$ gpg --keyserver keyserver.ubuntu.com --recv-keys BA07F4FB

接着运行:

$ gpg -a --export 6A030B21BA07F4FB | sudo apt-key add -

返回OK,说明成功。

 

之后进行泊坞窗安装:

$ sudo apt-get install -y docker.io kubelet kubernetes-cni kubeadm

(Ubuntu的中多克尔叫docker.io,若已存在旧版本就先卸载$ sudo apt-get remove docker docker-engine docker.io

 

关闭swap分区:

如果不关闭kubernetes 运行会出现错误,及时安装成功了,node 重启后也会出现kubernetes server 运行错误。

sudo swapoff -a #暂时关闭

sudo vim /etc/fstab,注释掉swap那一行,#永久禁用swap分区

 

使用docker pull k8s的相关镜像:

1.先运行以下命令获取要pull的镜像列表

$ kubeadm config images list

I1124 18:05:00.831763 22669 version.go:93] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.txt: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

I1124 18:05:00.831941 22669 version.go:94] falling back to the local client version: v1.12.2

k8s.gcr.io/kube-apiserver:v1.12.2

k8s.gcr.io/kube-controller-manager:v1.12.2

k8s.gcr.io/kube-scheduler:v1.12.2

k8s.gcr.io/kube-proxy:v1.12.2

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.2.24

k8s.gcr.io/coredns:1.2.2

 

   2. 编写脚本批次pull,在文本中输入:

#! /bin/bash
images=(
    kube-apiserver:v1.12.2
    kube-controller-manager:v1.12.2
    kube-scheduler:v1.12.2
    kube-proxy:v1.12.2
    pause:3.1
    etcd:3.2.24
    coredns:1.2.2
)

for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName

done

 

其中docker tag用于标记本地镜像,将其归入某一仓库(使用阿里镜像避免翻墙).

保存脚本kubeadm_config_images_list.sh后运行:

$ sudo chmod +x kubeadm_config_images_list.sh

让其变得可执行,然后在当前文件夹运行:

$ ./kubeadm_config_images_list.sh 即可.


初始化

$ sudo kubeadm init

——如果发现docker版本不合适,可能是因为docker版本太新(因为默认安装的是最新版本的docker,就要卸了docker重装版本支持的docker,注:Ubuntu里docker称作docker.io:

$ sudo apt-get autoremove docker.io

——如果出现“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”

 执行以下命令:

systemctl unmask docker.service

systemctl unmask docker.socket

systemctl start docker.service
 

配置授权信息

init成功后,即master node初始化成功,成功后会提示一些操作。(如果失败,根据问题再做改进):

要开始使用群集,您需要以普通用户身份运行以下命令:

即配置授权信息,主要是为了保存相关的配置信息在用户目录下,这样不用每次都输入相关的认证信息。

$ mkdir -p $ HOME / .kube

$ sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config

$ sudo chown $(id -u):$(id -g)$ HOME / .kube / config

运行命令查询节点:kubectl获取节点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值