1.二进制方式搭建极简kubernetes1.10环境@centos7.3
2.在家庭私有云上为K8S部署dashboard管理界面
3.kubernetes有管理界面吗?
4.在家庭私有云上实现 K8S 部署 kong 网关和 konga 管理后台
5.katacoda课程 - 如何部署一个单机版k8s
6.K8s组件全解析,你需要知道的一切秘密
二进制方式搭建极简kubernetes1.10环境@centos7.3
在CentOS 7.3(3..0-.el7.x_)环境中,构建一个极简的Kubernetes 1.集群,需在Master(...)和Node(.../)上进行以下步骤。
首先,安装Etcd,域名拦截源码确保在3台主机上安装,并编辑install_etcd.sh脚本,用正确IP地址替换ifconfig命令。依次在每台主机上执行脚本,配置Etcd的集群连接信息,避免启动间隔过长导致集群失败。运行后,通过etcdctl检查集群成员状态。
接着,Flannel需要在所有主机上安装,编辑install_flannel.sh,设置正确的网络接口和etcd键值,然后分别执行安装命令。确认Flannel网络接口的配置。
Docker在所有主机上采用二进制方式进行安装,编辑install-docker.sh,添加Flannel参数,然后执行安装脚本。通过docker version检查安装是否成功。
Master节点部署Kubernetes,通过install_k8s_master.sh,配置Master与Etcd节点的连接。Minion节点通过install_k8s_node.sh,iss上传源码连接至Master。最后,确认集群状态,包括scheduler、etcd、controller-manager的健康,以及Node的状态。
为了运行Busybox容器,需要在本地导入镜像。编写busybox_rc.yaml配置文件,然后使用kubectl创建资源。验证容器运行正常。
部署kube-dns服务,确保集群内域名解析,修改kube-dns.yaml中的配置,通过kubectl create -f部署。同样,部署Dashboard服务,修改kubernetes-dashboard.yaml,使用Node IP访问。
部署完成后,检查kube-dns和Dashboard的Pod状态。安装介质和镜像可以从提供的链接下载。
在家庭私有云上为K8S部署dashboard管理界面
在家庭环境中搭建私有云并实现外网访问的过程,已在我之前的文章中详细描述,不再赘述。 接下来,我们将直接介绍如何在K8S主节点上部署dashboard管理界面,茶店网站源码它提供了直观的集群管理工具。步骤一:创建配置文件
在K8S主节点的任意目录下,创建两个文件:admin-role.yaml和recommended.yaml,然后分别粘贴以下代码:步骤二:运行kubeclt命令
在宿主机上,运行kubeclt命令来获取必要的信息。找到以"admin-token"开头的那行数据。获取管理员令牌
步骤三:登录dashboard
现在,使用宿主机的IP地址加上端口,输入获取到的管理员令牌,即可登录dashboard界面进行管理。 至此,你的家庭私有云上的K8S集群管理界面已成功部署并登录,可以开始轻松管理你的K8S资源了。kubernetes有管理界面吗?
Kubernetes 自带管理后台名为 Kubernetes Dashboard,此外,还有多种开源管理工具可供选择,满足不同需求。例如,k9s 是一个基于 curses 的全屏终端 UI 管理工具,具备与 Kubernetes 集群交互、资源查看、日志监控等功能。Pulses 和集群事务状态顶级仪表板、XRay 和资源依赖性挖掘、Pods 和状态与资源消耗、Logs 和容器日志查看、RBAC 和集群授权等工具提供了丰富的管理功能。KubeSphere 是Gargoyle qos源码一个云原生分布式操作系统,具备多租户容器平台与自动化运维能力,提供运维友好的界面。Rancher 是一个开源平台,集成管理生产中的容器所需软件堆栈,支持多 Kubernetes 集群管理。Lens 是为 Kubernetes 用户设计的 IDE,提供集群资源实时监控、日志查看等功能。Shipyard 是基于 Web 的 Docker 管理工具,支持多主机统一管理,具备丰富的功能。Kubernetic 是一个功能强大的 Kubernetes IDE,实时监控集群状态、Pod 日志等。Grafana 作为监控与可视化工具,与 Kubernetes 集成,提供集群可视化展示。Kuboard 是一款免费的 Kubernetes 管理界面,具备多集群管理、权限管理、监控等功能。Kubevious 是具有特色功能的 Kubernetes Dashboard,包括 TimeMachine(时光机)功能。Octant 是基于 Web 的高度可扩展平台,供开发者理解 Kubernetes 集群的复杂性。Kontena Lens 是智能 Kubernetes 仪表板,支持多集群管理、实时可视化集群状态等。ddraw应用源码Loodse Kubermatic 提供统一管理界面,适用于跨云平台与本地基础设施管理 Kubernetes 集群。Portainer 是轻量级管理界面,轻松管理 Docker 环境,提供状态显示面板、应用模板快速部署等功能。Weave Scope 监控、可视化和管理 Docker 以及 Kubernetes,提供集群基础设施与应用的完整视图。Dashboard、Kubectl 和 Kubeadm 分别提供 Kubernetes 集群部署、资源管理和最小集群启动工具。WKSctl 是使用 GitOps 进行 Kubernetes 配置管理的工具,支持 Git 提交管理集群,轻松回滚部署失败,并记录更改供审核。
在家庭私有云上实现 K8S 部署 kong 网关和 konga 管理后台
Kong是一个开源的API网关框架,它具备众多高级功能,包括流量控制、API安全、服务发现、熔断、限流等,旨在帮助开发者构建可扩展、可靠和安全的微服务应用程序。
以下是Kong的一些主要特点:
简单易用:Kong提供了一个简单的命令行接口和易于使用的配置文件系统,使得部署和管理API网关变得非常简单。
多协议支持:Kong支持多种常见的HTTP/HTTPS协议,如HTTP、HTTPS、WebSocket等。
灵活的配置:Kong允许用户根据需要自定义各种参数,例如限流、熔断、日志记录等。
高度可扩展:Kong可以轻松地集成其他流行的服务发现、负载均衡和监控工具,例如Consul、Eureka和Prometheus等。
社区支持:Kong是由一个活跃的开源社区开发的,这意味着用户可以获得很好的技术支持和文档资源。
在K8S中部署Kong的步骤如下:
1、如果还没有命名空间,先创建。
2、在k8s的master节点进入任意目录新建kong-migrations.yaml、kong.yaml、konga.yaml三个文件,把如下信息粘贴进去:
注意:kong-migrations.yaml这个POD是专门用来初始化数据库的,执行一次之后就可以删除了。
注意:kong.yaml这里需要注意一下,我是把kong的端口映射到宿主机的和,确保你宿主机这两个常用端口没有被占用,还有个问题是k8s的nodePort端口范围为:-,配置文件直接写和,会报错,需要改下配置。
找到kube-apiserver.yaml文件的绝对路径,其路径为"/etc/kubernetes/manifests/kube-apiserver.yaml",并添加参数"- --service-node-port-range=1-",如下所示:
不需要重启,过一会自动就生效了。
注意:konga.yaml这里我使用了NFS把konga的文件映射出来,这样当Pod被销毁或者被调度到其他节点之后数据都不会丢失,你如果还没有安装NFS服务器可以参考我之前写的“在家庭私有云上实现 Docker 部署 NFS 网络文件系统”这篇文章。
执行kubeclt命令。
我们打开k8s-dashboard管理后台瞄一眼:
然后在浏览器输入master节点的ip+端口:打开konga管理后台,输入如下信息,让konga管理kong的路由配置:
连接成功:
在konga管理后台验证成功后,如何验证kong网关是否能够正常提供服务呢?首先拿出我的域名,这个域名没有备案,但是我把它解析到k8s的master节点的内网ip,仅仅做内网使用是没问题的。
在konga管理后台点开服务管理,新建服务,填入如下信息:
接着点开Routes选项卡,配置通过 konga.azyu.cc访问:
点击保存,之前我们是通过IP加端口的方式访问konga管理后台,现在可以通过域名,在浏览器输入 konga.azyu.cc,大功告成!
katacoda课程 - 如何部署一个单机版k8s
部署单机版k8s的步骤如下:
首先启动Minikube,确认安装并配置无误后运行minikube version和minikube start --wait=false命令。这样就可以在在线终端中启动Kubernetes集群,Minikube会为您启动一个虚拟机,并在此VM中运行Kubernetes集群。
然后使用kubectl CLI与集群进行交互,这是管理Kubernetes及其集群上运行的应用的主要方法。通过kubectl cluster-info命令可以查看集群详情及健康状态,使用kubectl get nodes命令查看集群中的节点。如果节点标记为NotReady,则表示正在启动组件,可以查看可用节点以部署应用。当前节点状态为ready,已准备好接收部署应用。
接着部署容器,使用kubectl run命令将容器部署到集群中。通过kubectl create deployment命令创建名为first-deployment的部署,并指定使用katacoda/docker-查看应用。
K8s组件全解析,你需要知道的一切秘密
Kubernetes集群的高效运作离不开其核心组件的协同工作。这些组件包括 kube-apiserver、etcd、kube-scheduler、kube-controller-manager、kubelet、kube-proxy、容器运行时(如Docker或Containerd)、CoreDNS/kube-dns、Node以及管理界面工具如Kubernetes Dashboard和网络插件。它们各自承担着关键任务,如配置管理、数据存储、节点调度、资源管理、网络代理等。
首先是kube-apiserver,作为集群的控制中心,处理所有API请求,验证、授权并持久化存储数据。etcd作为分布式存储,存储着集群配置和状态,对集群稳定性至关重要。kube-scheduler负责在节点间智能分配Pod,实现负载均衡。kube-controller-manager管理各种控制器,确保集群状态与期望一致,比如副本集控制和节点管理。kubelet运行在每个节点上,管理容器和Pod,与控制平面保持同步。
kube-proxy确保集群内部网络通信,而容器运行时则负责实际的容器操作。CoreDNS和kube-dns提供DNS解析服务,帮助服务发现。Node作为计算资源,运行kubelet等组件。Kubernetes Dashboard提供图形化管理界面,网络插件则为网络功能提供支持。
部署和访问 Kubernetes 仪表板(Dashboard)
Dashboard,作为Kubernetes的Web界面,提供了全面的容器应用管理和监控功能。它允许用户部署应用,监控集群状态,管理资源,如Deployment、Job和DaemonSet,并执行诸如弹性伸缩、滚动升级等操作。默认情况下,Dashboard并不自动部署,需要手动配置。 部署步骤如下:国内用户可能因网络原因无法直接部署,建议复制官方文档中的链接,下载本地后执行相关命令。
访问Dashboard则需要通过Bearer令牌,首先创建Service Account和ClusterRoleBinding,然后获取令牌:创建Service Account
创建ClusterRoleBinding
获取Bearer Token
使用kubectl设置的命令行代理,可以使用链接/c2s,并请关注Golang技术实验室获取更多内容。 本文由mdnice发布,版权所有,未经授权请勿复制。