容器云之K8s自动化安装方式的选择

简介: 目前kubernetes 已经发展到1.5的时代,但在这之前学习和使用kubernetes还是走了不少弯路,第一个问题就是安装,也许你会说安装很简单。照着官网或网上抄一篇就可以装上了…… 而我们使用kubernetes是1.1和1.2版本的时候,那时候最权威的文档应该就是kubernetes.io官网文档……,然而我们在官网进行问题检索的时候会出现(这张图来源网络) 这张图已经很明说明问题了……由于安装过程中的存在的问题,造成之后在使用过程中的一系列问题…… 随着kubernetes的发展(目前已经到达1.5 beta版),和之前相比官方文档也已经更加完善。

目前kubernetes 已经发展到1.5的时代,但在这之前学习和使用kubernetes还是走了不少弯路,第一个问题就是安装,也许你会说安装很简单。照着官网或网上抄一篇就可以装上了……   

而我们使用kubernetes是1.1和1.2版本的时候,那时候最权威的文档应该就是kubernetes.io官网文档……,然而我们在官网进行问题检索的时候会出现(这张图来源网络)


这张图已经很明说明问题了……由于安装过程中的存在的问题,造成之后在使用过程中的一系列问题……

随着kubernetes的发展(目前已经到达1.5 beta版),和之前相比官方文档也已经更加完善。同时也出现了多种安装kuberntets的方法,在这么多种的安装法我们该如何选择呢?

今天为大家介绍5种安装方法


minikube


minikube 由 CoreOS 提供在单机上构件 kubernetes 集群。minikube命令可以运行在windows/linux/macos等平台,使用minikube搭建本地集群是非常方便的,同时minikube提供了完整的kubernetes集群的功能。对于初识者minikube是一种很好的安装方式,而且上手也非常快。但问题在于minikube安装的时候需要连接互联网,而且网络需要足够好……道理很简单。


这是官网使用minikube来启动kubernetes集群。有兴趣的可以查看github关于minikube的信息。

kubeadm


kubeadm 可以运行在物理机、虚拟机以及云主机,并且可以与chef或puppet配合可以完成自动化部署安装。kubeadm与minikube一样,你的网络要好,原因也很简单……

kubeadm 是 kubernetes 在1.4版推出安装 kubernetes 集群。目前还处于alpha,不建议在生产环境使用。本人在centos系统上安装测试时会出现无法连接到kubeadm所需要的yum源。即使按照官网配置了源也行出现无法下载源,最后是找到三方源才能顺利安装完成。在安装过程中可选的配置参数太少,所以基本都需要在使用过程中自行修改。



如图就是官方说明添加yum源,ubuntu没测试过。

hyperkube image


hyperkube images 由 Google 推出将 kubernetes 各组件以容器方式运行。容器可以有(docker/rkt等)。使用 hyperkube images 需要提前配置 kubelet 组件。最终通过kubelet将kubenetes部署各组件。这种安装方法的好处是:只要系统可运行容器,就可以通过hyperkube images 来运行kubernetes组件。

通过 hyperkube images 部署kubernetes组件,首先你的网络要好,原因很简单……或者你提前在本地准备好 hyperkube images 。

前面说过使用 hyperkube images 需要使用 kubelet 组件。运行kubelet组件可以有两种方法:docker和systemd。



通过设置kubelet 的–config目录。kubelet 会自动运行此目录中所添加的组件。在这里需要注意是,在kubernetes V1.3的版本,需要手动创建kube-system的namespace 而V1.4版本不需要配置。

docker


docker images 由 kubernetes 在发行版本中提供 docker images,并通过 docker images 运行 kubernetes 组件。所需要的镜像包在kubernetes-server-linux-amd64.tar.gz里。

SystemD

第五种方法通过SystemD来实现,这也是我们在生产和测试环境使用的方法。


Like it or not, systemd is here to stay.

看完上图也许我会明白systemd在系统中的重要做用。

在这之前,我们在Linux下使用容器你会发现,不能挑内核,不能加载内核模块,不能挂载文件系统,不能调整内核参数,不能改网络配置。如果你在运行容器时使用了 docker run –privileged 那我只能说祝你好运。

如果容器就是通过cgroups堆出来,那么容器本身的/sys /dev 和 /proc 存在隔离性的问题。

因此通systemd+selinux 来进行管理,而kubernetes只需要调用systemd就完成对于容器的管理。


因此我在基于systemdd在自的环境编写了安装kubernetes各组件的脚本。


安装脚本主要完成上图的安装和配置。

本文转移开源中国-容器云之K8s自动化安装方式的选择

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
1月前
|
存储 运维 Kubernetes
容器服务ACK常见问题之容器服务ACK 淘宝源过期了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
22天前
|
Kubernetes 容器
k8s容器时间与服务器时间不一致问题
k8s容器时间与服务器时间不一致问题
18 0
|
8天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
11天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
21 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
25天前
|
Kubernetes API 调度
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
47 0
|
1月前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。
|
1月前
|
Kubernetes SDN 微服务
微服务与 Kubernetes 容器云的边界
【2月更文挑战第30天】该文探讨了微服务与Kubernetes集群的关系,主要关注是否应跨多集群部署。理想的状况是每个微服务对应一个Kubernetes集群,配置和注册中心在同一集群内,以减少网络延迟。
|
1月前
|
存储 Kubernetes 监控
容器服务ACK常见问题之容器服务ACK启动时readiness告警如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
1月前
|
存储 监控 Kubernetes
容器服务ACK常见问题之cmonitor-agent容器一直没起来如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。