在国内的网络环境下,按照官方文档,在Ubuntu上安装kubernetes,打通ssh、设置环境变量、下载源码或者二进制包,部署,是根本就安装不成功的,最基本的连git上的源码都下不下来,就算下来了,后续安装依赖的flannel、etcd的时候还是下载不下来;于是干脆自己动手下载依赖包,修改kubernetes安装脚本。
1、前提条件看官方文档,Ubuntu必须是14.0x,16.x版本是安装不了的;docker镜像加速,就用阿里云的
2、下载kubernetes release包,下载的是v1.3.5,大小1.xG
3、下载flannel,下载v0.5.5,太新版本没敢下
4、下载ectd,v3.0.4
5、解压kubernets、flannel、etcd后,软连接到kubernetes/cluster/ubuntu 目录下,是解压后的目录名,不能乱改目录名,否则后边用到了时候找不到
6、编辑kubernetes/cluster/ubuntu目录下download-release.sh文件,把用来下载和解压flannel、etcd、kubernetes的三个curl和tar注释掉,由于上边我们已经下载并且软连接了相应的包目录,所以只用这个文件拷二进制文件就好了;实际上download-release.sh一大部分功能就是将kubernetes、flannel、etcd相关的二进制文件,拷到kubernetes/cluster/ubuntu/binaries目录下,后边会把这些文件以及一些配置文件拷到各个minion节点
7、安装过程中会遇到
saltbase/salt/generate-cert/make-ca-cert.sh: No such file or directory/kubernetes/server/kubernetes下已经有salt包,解压后saltbase整个目录cp到kubernetes/cluster/下
8、kubernetes/cluster/ubuntu/util.sh 这个文件在运行的时候会storage.googleapis.com下载easy-rsa.tar.gz文件,但是国内经常被墙,如果被墙卡在这一步,会拷贝binaries后长时间没反应,这个可以回复评论提供一个下载。
9、kubernetes/cluster/ubuntu/util.sh 同时会向kubernetes的集群中其他机器上拷贝etcd、flannel、kubernetes二进制文件和配置,但是如果运行多次kube-up.sh,并且拷贝过相关文件到了个集群中其他文件,会出现不能覆盖的问题:
password to copy files and start node: cp: cannot create regular file ‘/opt/bin/etcd’: Text file busy cp: cannot create regular file ‘/opt/bin/kube-apiserver’: Text file busy cp: cannot create regular file ‘/opt/bin/kube-controller-manager’: Text file busy cp: cannot create regular file ‘/opt/bin/kube-scheduler’: Text file busy start: Job is already running: etcd
解决办法,修改util文件,把所有cp改为cp -f,强行覆盖:
cp ~/kube/default/* /etc/default/ 改为 cp -f ~/kube/default/* /etc/default/
10、kubernetes/cluster/ubuntu/util.sh 同时会启动集群其他机器的etcd、flannel、kubernetes组件,但是这里启动脚本用的是service xxx start,而不是restart,这个重复启动会报错退出
start: Job is already running: etcd
解决办法把util.sh中所有service xxx start改为service xxx restart
做完以上步骤,按照这篇文档,找几台机器(如果没有,并且你电脑配置不错,可以装个虚拟机,然后拷贝几个出来启动),在master上打通ssh,注意自己的ip也要ssh-copy-id一下,否则后边部署会失败
$ ssh-keygen $ ssh-copy-id user@172.16.30.136 $ ssh-copy-id user@172.16.30.137 $ ssh-copy-id user@172.16.30.138
下载kubernetes源码或release包(release包见下边第2条),开始安装前先设置一些环境变量,前三个是三个依赖包的版本,自己按照实际版本设置,最后一个是运行kubernetes的操作系统:
export KUBE_VERSION=1.3.5 export FLANNEL_VERSION=0.5.5 export ETCD_VERSION=3.0.4 export KUBERNETES_PROVIDER=ubuntu
然后配置cluster/ubuntu/config-default.sh,设置master和minion,SERVICE_CLUSTER_IP_RANGE表示集群内部service所对应的ip范围,flannel_net表示pod所分配的IP范围。这里我发现跟集群中节点ip在一个段中才能部署成功。
export nodes=${nodes:-"user@172.16.30.136 user@172.16.30.137 user@172.16.30.138"} roles=${roles:-"ai i i"} export roles_array=($roles) export NUM_NODES=${NUM_NODES:-3} export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-172.16.30.0/24} # formerly PORTAL_NET export FLANNEL_NET=${FLANNEL_NET:-172.16.0.0/16}
最后在kubernetes/cluster下运行kube-up.sh,就会调到以上修改的相关脚本,如果成功,会看到这个提示:
Cluster validation succeeded
验证运行结果:
$kubectl get nodes NAME STATUS AGE 172.16.30.136 Ready 14d 172.16.30.137 Ready 14d 172.16.30.138 Ready 14d
相关推荐
在ubuntu 16.04下用二进制部署kubernetes v1.6.2集群-文档
Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装.rar
kubernetes-on-aws:使用CloudFormation和Ubuntu在AWS上部署Kubernetes
该项目将用于ansible部署kubernetes。 请参阅README.md和group_vars/template.yml文件以进行项目配置 云端支援 蔚蓝 Aws(Apiserver HA使用CLB) GCP(Apiserver HA使用TCP负载平衡) 操作系统支持 所有Node安装...
overview使用ansible部署kubernetes项目注: 1. 适用于开发环境 不建议直接上生产环境,如需使用 请自行修改文件 2. 本项目部署镜像均采用谷歌服务器镜像没有经过tag 方式 ,部署时请保证服务器可以访问google服务器 3...
部署Kubernetes集群以学习Kubernetes的最简单方法 部署集群 从您最喜欢的云提供商创建Ubuntu 64 Server / VM 然后应用: wget -qO- https://git.io/veKlu | sudo sh wget -qO- https://git.io/veKlu | sudo sh ...
基于Ubuntu14.04进行docker+k8s的安装,经测试也适用于Ubuntu的更高版本
环境说明:操作系统:Ubuntu16.04orCentOS7Kubernetes版本:v1.8.3Docker版本:v17.09-ce均采用当前最新稳定版本。关闭selinux。打开下面网址,下载下面两个红色框框的包。...
该项目为部署Kubernetes集群提供了参考。 其有趣的剧本允许在Bare-metal或Virtual Machines上预配部署。 Linux发行版 名称 版 的Ubuntu 16.04 / 18.04 / 20.04 CentOS的 7/8 openSUSE 风滚草 组件 名称 描述 ...
k8s离线文件包 Ubuntu 使用Kubeadm 离线安装k8s 参考连接 https://blog.csdn.net/u010952056/article/details/127276191?spm=1001.2014.3001.5501
kube-bench是一个Go应用程序,它通过运行记录的检查来检查Kubernetes是否已安全部署。 测试是使用YAML文件配置的,因此随着测试规范的发展,该工具易于更新。请注意kube-bench尽可能紧密地实现。 如果kube-bench未...
https://github.com/kubernetes-sigs/kubespray kubespray 使用 ansible 快速部署容器化 高可用 k8s 集群 环境 主机 内网ip 外网ip 系统 k8s-1 10.0.0.18 61.xxx.xxx.187 ubuntu 18.04 k8s-2 10.0.0.19 ...
部署Kubernetes服务和Ambassador API网关。 检查Kubernetes代理和Istio等服务网格之间的差异。 从外部和Pod访问Kubernetes API。 了解选择哪种API。 查看服务帐户和RBAC的工作方式 在构建Docker映像和许多有趣...
学习kubernetes的时候,我们需要在kubernetes环境下实战操作,然而kubernetes环境安装并不容器,现在通过rancher可以简化安装过程,咱们来实战rancher下的kubernetes吧; 整个实战分为两章:《构建标准化vmware镜像...
该项目使用Jenkins管道将机器学习微服务API部署到Kubernetes Cluster并实现了Blue-Green部署策略。 除了该主分支外,此仓库还有一个分支。 蓝绿色部署分支对应于蓝/绿色部署策略。 确保您签出Blue-Green-...
Kubernetes二进制部署和插件配置 官方实例,社区实例和自己开发部署实例 Kubernetes架构与原始码剖析 Kubernetes几乎所有的安装组件和Docker完全都放在goolge自己的网站上,这对国内的同学可能是个不小的障碍。建议...
CharmedKubernetes:registered:是纯粹的Kubernetes,它通过提供Ubuntu的人员为您提供的具有现代指标和监控功能的跨最广泛的云进行了测试。 Google,Microsoft和许多其他机构在Ubuntu上运行Kubernetes,因为我们...
该项目的目标是为在裸机上部署Kubernetes提供一种简单统一的方法。为什么快速简单这样就没有安装过程,您只需从头开始运行物理服务器,在引导过程中,它们会通过网络下载系统映像,并使用overlayfs root在类似...
ubuntu环境安装tomcat,1.配置基本环境,6.tomcat环境,安装JDK8,mysql,4.kubernetes额外组件
部署kubernetes集群的步骤。本系列系文档适用于 CentOS 7 、 Ubuntu 16.04 及以上版本系统。