如何在Ubuntu 16.04、 CentOS 7和HypriotOS v1.0.1操作系统上部署一套安全的Kubernetes集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
概述
可以在本地虚拟机、物理机开发云主机域名或者其他云服务提供商的IaaS资源上来使用kubeadmin安装Kubernetes。也可以很容易将kubeadmin集成到Terraform、 Chef、Puppet等自动化工具中。对于kubeadmin所有
命令
行信息介绍,可以参考http://kubernetes.io/docs/admin/kubeadm/。在Kubernetes1.5中,Kubeadmin工具还是阿尔法版本,也就是说大家可以在研发测试环境中使用,特别需要注意的地方是kubeadmin还不能全面支持自动配置云服务提供商IaaS资源。如果在云服务提供商IaaS资源上部署,那么需要参考云服务提供商的技术文档。Kubeadm被设计成针对大规模集群部署环境中使用的,当然也可以很容易的手动安装。如果在你自己IaaS基础架构上或者已经存在的自动化系统上部署Kubernetes,kubeadm是一个很好的选择。
部署前提条件
有多台虚拟机或者物理机,上面操作系统是Ubuntu 16.04+、CentOS 7或者HypriotOS v1.0.1+。每台主机上面至少1G内存。所有主机之间网活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看络可达。
部署目的
在指定的主机上安装一套安全的Kubernetes集群。在集群上安装一个POD网络,用来允许POD之间相互通讯。在Kubernetes集群上部署一个微服务应用样例。
部署步骤
在主机上安装kubelet和kubeadm
在主机上安装下面软件包:docker:建议安装v1.11.2版本版本,v1.10.3版本和v1.12.1版本也可以。kubelet:安装v1.5版本kubectl: 安装v1.5版本kubeadm: 安装v1.5版本需要注意的是,如果主机上已经安装了kubeadm,那么需要更新成Kubernetes对应的v1.5版本。按照下面顺序来配置主机:SSH登录到主机上,并且切换成root用户。如果主机是Ubuntu或者HypriotOS,那么运行
命令
:如果主机是CentOS操作系统,那么运行命令:执行完上述命令后,kubelet会进入重启循环模式,每隔几秒钟就会重启,kubelte这时候再等待执行kubeadm发出的命令。需要注意的是,需要禁用SE
Linux
,比如通过setenforce0命令。禁用的目的是让容器可以读取主机文件系统,以便了解如何配置POD网络。
初始化Kubernetes的master节点
Kubernetes的master节点上运行着etcd和api server等组件,所有这些组件都需要通过kubelet启动。在卸载kubernetes前,不要运行两次kubeadm init命令。如果已经运行了kubeadm init命令,导致主机状态同kuberentes集群状态不兼容,这时候kubeadm会发送告警信息,提示目前不能正常工作,因为不满足强制要求。可以通过下面命令初始化master节点:需要注意的是:这个操作会自动发现网卡设备,并且将master节点上网卡设备设置成默认网关。如果想使用另外的网卡设备,那么需要在执行kubeadminit命令时增加参数–api-advertise-addresses=如果你想使用flannel搭建POD网络,需要增加参数–pod-network-cidr=10.244.0.0/16。如果不适用flannel,那么就不需要这么做了。可以参考kubeadm指南http://kubernetes.io/docs/admin/kubeadm/,在这里面可以看到更详细的kubeadmin init参数。执行完kubeadm init命令后将会花几分钟自动下载并且安装kubernetes集群控制组件。下面是命令执行后的输出内容:在kubeadm join命令中,需要输入token参数,通过token参数可以确保将被授权的节点添加到kubernetes集群中,通过token参数来保证安全。如果不在乎安全,比如安装一个单机的kubernetes开发环境,那么可以运行如下命令:
部署POD网络
在部署应用和启动kube-dns之前,需要部署POD网络,需要开发云主机域名注意的是kubeadm只是支持基于CNI的网络,因此基于kubenet的网络不会正常工作。可以从下面网页了解kubernetes支持的网络插件,http://kubernetes.io/docs/admin/addons/。可以通过下面命令部署POD网络:对于不同的网络插件,需要参考指定的网络插件安装指南。需要注意的是每个kuberentes集群只能部署一种POD网络。一旦部署完,需要检查kube-dns POD是否运行,通过命令kubectl get pods –all-namespaces的输出来确认网络是否正常工作。一旦kube-dns POD正常运行了,可以向kubernetes集群中添加工作节点。
向Kubernetes集群中添加工作节点
为了将工作节点添加到kubernetes集群中,对每开发云主机域名个工作节点主机,都需要SSH到这个主机上,并且切换到root用户,然后运行命令:添加完成后,在master节点上运行命令kubectl getnodes,会显示所有已经添加到集群中的节点主机。(可选步骤)不在master节点上操作集群,而是在其他工作节点上操作集群需要将master节点上面的kubernetes配置文件拷贝到当前节点上,然后执行kubectl命令:(可选步骤)连接到API Serer组件上如果已经部署了dashboard,那么可以从集群外部连接到APIServer组件上,然后查看dashboard:(可选步骤)部署样例应用上面已经部署完成了一套kubernetes环境,下面部署一个电商微服务应用。然后查看分配给样例应用的服务信息:经过几分钟,会下载h额启动样例应用所需容器,然后就可以通过命令kubectlget pods -n sock-shop的输出查看样例应用POD详细信息进入到Kubernetes集群的master节点上,通过浏览器访问http://:。在上面这个例子中,端口是31869,这个端口可以通过命令kubectl describe查询出来。如果有防火墙,那么确保这个端口可以被访问到。
卸载
通过在master节点上运行命令kubectl delete namespace sock-shop 来卸载这个样例应用。可以通过下面命令重置kubeadm工具:如果想重新开始,那么依次运行命令systemctl start kubelet、kubeadm init和kubeadm join。看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注开发云行业资讯频道,感谢您对开发云的支持。
本文从转载,原作者保留一切权利,若侵权请联系删除。
《如何在Ubuntu 16.04、 CentOS 7和HypriotOS v1.0.1操作系统上部署一套安全的Kubernetes集群》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...