收藏 分销(赏)

基于kubernetes的容器管理平台的部署研究.pdf

上传人:自信****多点 文档编号:2051601 上传时间:2024-05-14 格式:PDF 页数:4 大小:2.03MB
下载 相关 举报
基于kubernetes的容器管理平台的部署研究.pdf_第1页
第1页 / 共4页
基于kubernetes的容器管理平台的部署研究.pdf_第2页
第2页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、秦宇QIN Yu工作节点监听API Server发送的新工作分配,执基于kubernetes的容器管理平台的部署研究(广东省外语艺术职业学院,广州510 6 40)摘要:文章在对Kubernetes容器管理平台的原理进行分析的基础上,对比了现有的部署方法,并提出了更高效和易于维护的替代方法。同时,对部署原理也进行了详细解释,旨在为院校和企业在构建Kubernetes 平台时提供有益的参考。关键词:Kubernetes;云计算;容器管理平台中图法分类号:TP393Deployment research based on Kubernetes container management platfo

2、rm(Guangdong Teachers College of Foreign Languages and Arts,Guangzhou 510640,China)Abstract:On the basis of analyzing the principles of the Kubernetes platform,this article comparesthe existing deployment methods of the Kubernetes platform and proposes a more efficient and easyto maintain deployment

3、 method.At the same time,the deployment principles are also analyzed,providing useful references for universities and enterprises to build effective Kubernetes platforms.Key words:Kubernetes,cloud computing,container management platform1kubernetes 架构Kubernetes 是一个用于自动部署1、扩展和管理容器化应用程序的开源系统。它最初由Google

4、设计,并后来捐赠给 Cloud Native Computing Foundation(现已归入Linux基金会)进行维护和使用。如图1所示,Kubernetes 通常由一个主节点(ma s t e r n o d e)和多个工作节点(worker node)组成。其中,主节点包含API Server、键值存储etcd、Co n t r o l l e r和 Scheduler组件。API Server是Kubernetes控制程序的前端,也是唯一与用户直接交互的Kubernetes 组件。此外,其内部系统组件和外部用户组件均通过相同的API进行通信。Master NodeKey Value

5、Store-etcdAPIControllersDeveloperServerKubeletContaliner Runtime(Docken)OptionalAdd-Ons(DNS,UI.)Warikar Nnde图1kubernetes架构文献标识码:AKubeletContainer Runtime(oockenSchedulerNetwork Proxy(kube-proxy)PPodPodNetworkProxy(kube-proxy)行分配给它们的任务,然后将执行结果报告给Kubernetes主节点。工作节点包括Kubelet,ContainerRuntime,Kube-proxy

6、和 Pod 组件。Kubelet在集群中的每个节点上运行,它是Kubernetes 内部的主要代理,负责管理节点的CPU、R A M 和存储等资源,使它们成为集群的一部分。2kubernetes 部署总体设计Kubernetes的部署目前通常采用以下三种方式:(1)利用Minikube工具进行部署(优点是能够快速在本地搭建单节点Kubernetes环境,但无法模拟生产环境);(2)利用Kubeadm工具进行部署2 (优点是适用于快速在生产环境中部署KUBERNETES,但排查错误Pod较为困难);Pod(3)采用二进制部署(优点是容易进行问题排查Optional Add-Ons(DNS,UI.

7、)WorkerNodeUser和易于维护,但需要手动部署每个组件,较为复杂)。经过对当前各种Kubernetes 部署方法的分析,本文决定采用编写脚本结合Docker容器的方式进行Kubernetes的部署。这一方法简化了部署过程,使得整个过程更加清晰、可控和易于维护。为了便于Kubernetes平台的管理,本文还部署了用于图形化管理 Kubernetes 的 Dashboard 组件。1303部署步骤和原理分析本文采用的Kubernetes版本为v1.14.0。为了便于研究,选择在个人笔记本电脑上进行部署,该笔记本电脑运行Windows11操作系统,配置为16 核CPU和16 GB内存。首先

8、,在笔记本电脑上安装了虚拟化软件VMware Workstation。需要注意的是,在此选择了VMwareWorkstation17版本,因为这是较新的版本。如果使用较低版本的VMware Workstation,可能会出现与Windows自带的虚拟化软件Hyper-V之间的冲突。在安装VMware Workstation17之前,确保先关闭了Windows自带的虚拟化功能Hyper-V3。为了在模拟生产环境的同时不过多占用资源,本文创建了两台虚拟机,其具体参数如表1所列,用于部署Kubernetes。其中,一台虚拟机充当主节点,另一台虚拟机则用作工作节点。名称角色m主节点n1工作节点图2 各

9、个节点配置主节点的docker环境安装步骤如下。(1)安装 centos7。从“http:/ Linuxrelease 7.9.2009(Co r e)”。如果使用已有的centos7,必须用“yum-yupdate”命令将其升级到“release7.9.2009”版本,这个升级过程可能需要大约10 min。(2)安装一些必要的工具。yum install-y conntrack ipvsadm ipset jq sysstatcurl iptables libseccomp(3)配置DNS服务。root localhost yum.repos.d I#vi/etc/resolv.confna

10、meserver 223.5.5.5nameserver 8.8.8.8务必注意修改dns设置,否则可能会导致无法解析到后续文件“kubernetes-dashboard.yaml”中所包含的镜像下载地址。(4)安装18.0 9 版本的docker。由于Kubernetes需要依赖docker环境,因此必须安装docker,并且建议安装较新版本。本文将安装docker18.09版本。为了完成docker18.09版本的安装,需要执行以下步骤:安装必要的依赖:yum install-y yum-utils 计算机应用文摘device-mapper-persistent-data 1vm2设置do

11、cker仓库地址:yum-config-manageradd-repo http:/ registry-mirrors:https:/ 硬盘内存CPU20 GB2 GB20 CB2 GB2023年第2 1期IPEOF2核1282核129验证文件/etc/docker/daemon.json内容是否正确 root localhost#VI/etc/docker/daemon.jsonregistry-mirrors:https:/ 让阿里云加速器设置生效systemctl daemon-reload正式安装docker:yum install-y docker-ce-18.09.0 docker

12、-ce-cli-18.09.0 containerd.io为了保证正确安装docker,验证其是否为docker18.09版本 root localhost#docker-vDocker version 18.09.0,build 4d60db4启动docker并设置开机自启systemctl start docker&sudo systemctl enabledocker验证docker是否启动成功 root localhost|#systemctl status dockerActive:active(r u n n i n g)s i n c e 2 0 2 3-0 4-17 0 9:1

13、5:41 CST;16s ago经过上述步骤,主节点的docker环境已成功安装。为了能够重复使用已安装好docker的虚拟机,可以按照以下步骤操作:首先,关闭主节点;接着,从主节点克隆出一台虚拟机,将其用作工作节点;最后,启动工作节点。(5)主节点执行更改主机名称为m。2023 年第2 1期hostnamectl set-hostname m更新显示新的主机名 root localhost#bashbash rootm#为了实现主节点和工作节点之间的机器名称互相识别,需要进行域名解析的配置:vi/etc/hosts10.12.11.15910.12.11.148185.199.111.133

14、在/etc/resolv.conf 配置文件的dns解析中可能找不到 的镜像,所以必须单独添加并配置这个解析地址。(6)从节点执行更改机器名称为N1以及设置同样的域名解析。每台机器上测试能否互相ping通ping mping n1(7)每台机器需执行的操作步骤。关闭防火墙systemctl stop firewalld&systemctl disablefirewalld关闭 selinux关闭swapswapoff-ased-I/swap/s/(.*1)$/#1/g/etc/fstab配置 iptables 的ACCEPT规则iptables-F&iptables-X&iptables-F-

15、t nat&iptables-X-t nat&iptables-P FORWARDACCEPT(8)设置系统参数。在文件/etc/sysctl.d/k8s.conf中输人内容cat /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOF让系统参数配置生效 root m#sysctl-system*Applying/usr/lib/sysctl.d/o0-system.conf.配置安装kubernetes的yum源cat /etc/yum.repos.d

16、/kubernetes.repokubernetesname=Kubernetesbaseurl=http:/ kubeadm&kubelet&kubectl。nlyum install-y kubectl-1.14.0-0yum install-y kubelet-1.14.0-0yum install-y kubeadm-1.14.0-0(10)docker 和k8s 设置同一个cgroup。8.5.1.编辑docker的daemon.json文件 root m#vi/etc/docker/daemon.jsonexec-opts:native.cgroupdriver=systemd ,

17、registry-mirrors:https:/(11)重启 docker。systemctl restart docker设置系统重启后自动启动软件systemctl enable kubelet&systemctl start kubelet(12)创建kubeadm.sh 脚本,用于实现从阿里云中拉取镜像、为镜像打标签,并删除原有镜像。root nl#vi kubeadm.sh运行脚本sh./kubeadm.sh查看镜像是否下载成功 root m#docker images节点都需要执行的命令到此为止,下面开始,分别在各自节点上执行命令。(13)初始化master节点(主节点)。root

18、 m J#kubeadm init-kubernetes-version=1.14.0-apiserver-advertise-address=10.12.11.159-pod-network-cidr=10.244.0.0/16得到命令:kubeadm join 192.168.100.150:6443-token7oahxf.bkOrywevguOxjouy复制并粘贴-discovery-token-ca-cert-hash sha256:4f84a48cc41343848d0b2f807c38937bc96d3d43e821f06b0c143a5282a38204,之后用于在工作节点机器

19、上执行。主节点上执行如下命令:mkdir-p$HOME/.kubecd.kube/131132sudocp-i/etc/kubernetes/admin.$HOME/.kube/configsudo chown$(id-u):$(id-g)$HOME/.kube/config(14)部署calico网络插件。root m.kube#kubectl apply-f htps:/docs.projectcalico.org/v3.9/manifests/calico.yaml(15)在从节点上执行kube join命令。kubeadm join 192.168.100.150:6443-token

20、7oahxf.bkOrywevguOxjouy1-discovery-token-ca-cert-hash sha256:4f84a48cc41343848d0b2f807c38937bc9d3d43e821f06b0c143a5282a38204(16)在master节点上检查集群信息(node的正常状态是ready,pod 的正常状态是running)。root m.kube#kubectl get nodesNAME STATUS ROLES AGEVERSIONmReady master 10mv1.14.0n1Ready91sv1.14.0(17)安装 dashboard图形界面。下

21、载配置文件。wget htp:/ root m#vi kubernetes-dashboard.yaml其中,dashboard的镜像的默认地址无法访问,需要改为:image:- 8 页)简单、操作更灵活、安全性更高的特点。因此,Java编程语言已成为现阶段计算机软件设计中最常用的编程语言,在国内计算机软件开发工作中发挥了一定的积极作用。为了推动科技的创新和发展,开发者需更深人地学习Java 编程语言,从而有效地提升计算机软件开发工作的效率和质量。本文重点研究了Java语言在计算机软件开发中的应用策略,旨在激发开发者的编程热情,从而有效推动计算机软件行业的发展。参考文献:1孙辉中.JAVA编程

22、语言在计算机软件开发中的应用J.网络安全技术与应用,2 0 2 2(1):49-50.计算机应用文摘confcontainers/kubernetes-dashboard-amd64:v1.10.0按照配置文件生成服务。root m#kubectl apply-f kubernetes-dashboard.yaml完成服务生成后,可以创建一个名为“admin的管理员账号,并获取管理员账号的token值。随后,可以使用该令牌登录到Kubernetes 的图形管理界面,即通过访问“主节点IP:30 0 0 5”来实现。这标志着Kubernetes 的部署成功完成。4结束语本文通过分析现有的不同Ku

23、bernetes 部署方法以及Kubernetes 的架构原理,本文提出了一种基于脚本和docker容器的部署方法。这一方法不仅提高了部署效率,还便于故障排查,增强了可维护性。这些成果对于高等院校的科研人员和企业员工都具有重要的参考价值。参考文献:1 孔祥文,宋辰萱.基于Kubernetes的私有容器平台研究J.电子技术与软件工程,2 0 2 0(17):18 5-18 7.2张有帅,余,尹雪龙.基于Kubernetes 的容器云平台研究与设计J.电子设计工程,2 0 2 1,2 9(2 2):18 0-18 3+18 8.3郭雷,毛玲燕.基于Kubernetes的企业级容器云平台设计与实践J

24、.信息技术与标准化,2 0 2 2(9):7 3-7 7.作者简介:秦宇(19 7 6 一),博士,高级工程师,研究方向:云计算和网络安全技术。2吴拓.Java编程语言在计算机软件开发中的应用J.无线互联科技,2 0 2 2,19(12):35-37.3杜凯.JAVA编程语言在计算机软件开发中的应用研究J.软件,2 0 2 2,43(1):9 2-9 4.4吴全娥.Java编程语言在计算机软件开发中的应用J.信息技术时代,2 0 2 2(15):6 2-6 4.5】戴云云.Java编程语言在计算机软件开发中的有效应用J.电脑校园,2 0 2 2(6):337-338.6祁欣颖.JAVA编程语言在计算机软件开发中的应用分析J.信息技术时代,2 0 2 2(15):53-55.作者简介:程刚(19 8 1一),本科,讲师,研究方向:计算机教学与改革、产教融合。2023 年第2 1期

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服