Kubernetes(k8s)认识以及应用(一)——Minikube单机部署

Kubernetes(k8s)

k8s是做什么的?

用于自动部署,扩展和管理容器化应用程序的开源系统

常见的集群管理工具

Apache Mesos:Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核成本高,但稳定性好

Docker Swarm:Docker官方提供的一款集群管理工具

Google Kubernetes:是Google开源的容器集群管理系统

k8s的组件

Master节点上的组件:

Master 组件提供的集群控制,Master 组件对集群做出全局性决策并调度,以及检测和响应集群事件

kube-apiserver:用于暴露Kubernetes API,任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行,请参阅构建高可用群集

etcd:Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。

kube-controller-manager:运行管理控制器,它们是集群中处理常规任务的后台线程

kube-scheduler:监视新创建没有分配到Node的Pod,为Pod选择一个Node

Node节点上的组件:

node节点组件在每个节点上运行,维护运行的 Pod 并提供 Kubernetes 运行时环境

kubelet:主要的节点代理,它会监视已分配给节点的pod

kube-proxy:通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务

pod:管理容器的基本单元

还有servicedocker。。。。。。

k8s各个组件的工作原理(下图所示)

通过Minikube简单使用镜像搭建k8s群集

安装docker-ce(最好安装1.8.09.6的版本)

yum install -y yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum list docker-ce --showduplicates | sort -r

yum -y install docker-ce-18.09.6

运行环境如下图所示(环境嵌套了4层ip关系):

方法一:使用virtualbox虚拟机搭建(在虚拟机里面运行k8s环境)

1.安装virtualbox

配置yum源:vim /etc/yum.repos.d/vbox.repo

[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc

yum安装virtualbox

yum -y install VirtualBox-5.2

2.使用国内阿里云安装Minikube

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

3.使用国内阿里云安装kubectl

curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl

4.启动minikube程序创建k8s

minikube start --vm-driver=virtualbox --registry-mirror=https://registry.docker-cn.com

没有--vm-driver选项默认也是通过virtualbox虚拟机启动

运行该命令之后会自己下载镜像

5.运行kubectl设置映射访问地址(因为是在虚拟机中的虚拟机中运行,所以没有设置只能在宿主CentOS7.2上访问,如果没有图形化界面没有浏览器就无法操作k8s)

kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'

该进程会一直运行

因为我们使用的是centos 7 minimal只有终端环境,所以我们要在宿主机上进行浏览器访问

6.通过命令查看web网页访问路径,访问测试

执行命令:minikube dashboard

该命令如果是系统安装了图形化桌面的话就可以直接进入到web界面,如果没有安装就不行,但是可以通过该命令知道访问路径,然后通过浏览器访问该地址路径进入web界面

通过该地址路径访问进入k8s系统

注意:记得修改前面的ip地址和端口该问宿主机ip地址和8001端口

方法二:在宿主机上搭建(就是在真机上的VMware上CentOS7.2上安装)

步骤一致只需要启动minikube的时候修改选项(不需要安装virtualbox)

minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com

注意:用docker images查看镜像是否下载全了,如果网速不好可能会导致有些镜像没有下载完成,启动运行就会出错,导致404和503的错误通常是因为kubernetes-dashboard镜像缺失

docker images命令查看,应该会有下面这些镜像(注意版本)

k8s.gcr.io/kube-proxy
k8s.gcr.io/kube-apiserver
k8s.gcr.io/kube-scheduler
k8s.gcr.io/kube-controller-manager
k8s.gcr.io/etcd
k8s.gcr.io/coredns
k8s.gcr.io/kubernetes-dashboard-amd64
k8s.gcr.io/kube-addon-manager
k8s.gcr.io/kubernetes-dashboard
k8s.gcr.io/k8s-dns-dnsmasq-nanny
k8s.gcr.io/k8s-dns-sidecar
k8s.gcr.io/k8s-dns-kube-dns
k8s.gcr.io/pause
gcr.io/k8s-minikube/storage-provisioner

也可以使用kubectl get pods --all-namespaces命令查看(如下图所示)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章