kubernets的基本概念和作用就不赘述了,google一下什么都知道了,直接进入正题,记录一下采坑和安装的过程。
环境准备:
centos7.2 x86_64 192.168.147.191 master k8s.masterdengchao.com##小插曲k8s.master.com居然有人注册了,搞的我在初始化的时候等了半天也没有反应,确实有点坑人,所以后面改了主机名
centos7.2 x86_64 192.168.147.192 master node1.com
centos7.2 x86_64 192.168.147.193 master k8s.node2.com

kubernets启动之前需要安装docker,但是现再最新版的v1.10也支持到docker17.03.这个一定要注意,要不然启动不成功。
安装docker17.03:
master节点:
安装docker 17.03依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
yum localinstall docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm -y

systemctl enable docker
systemctl start docker
配置hosts文件三台节点都要配置:
cat /etc/hosts
192.168.147.191 k8s.masterdengchao.com
192.168.147.192 k8s.node1.com
192.168.147.193 k8s.node2.com
配置kubernetsyum仓库:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
这里启动的时候会报错,kubelet启动不起来。
修改一下配置文件:
cat /usr/lib/sysctl.d/00-system.conf

Kernel sysctl configuration file

#

For binary values,0 is disabled,1 is enabled. See sysctl(8) and

sysctl.conf(5) for more details.

disable netfilter on bridges.

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 0

使用一下命令:

sed -i 's/net.bridge.bridge-nf-call-ip6tables = 0/net.bridge.bridge-nf-call-ip6tables = 1/' /usr/lib/sysctl.d/00-system.conf
sed -i 's/net.bridge.bridge-nf-call-iptables = 0/net.bridge.bridge-nf-call-iptables = 1/' /usr/lib/sysctl.d/00-system.conf
报错和解决办法如下:

提示找不到ca文件,直接先初始化,会自动下载ca文件:
kubeadm init --pod-network-cidr 10.10.0.0/24 --ignore-preflight-errors all

然后再启动
systemctl daemon-reload && systemctl start kubelet
在初始化就没有问题了
kubeadm init --pod-network-cidr 10.10.0.0/24 --ignore-preflight-errors all
然后安装提示操作:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
会生产一个token这个需要记下来到node节点上面去执行:
kubeadm join 192.168.147.191:6443 --token l6mql3.61w91hpwzzzul53t --discovery-token-ca-cert-hash sha256:03e3dded073878045e1831d610254904a451ff574de7bf8f1a5d812f40195947

错误:Failed to run Kubelet: Running with swap on is not supported,please disable swap!
解决:
echo 'Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"' >> /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

修改:/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" 将systemd修改为cgroupfs

sed -i 's/Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"/Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"/' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

错误:
Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

解决:
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf注释掉network一行

#Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"

创建网络:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml
##记得修改网段

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
master节点的安装就基本完成了。

node节点上面:
1.安装docker并启动
2.安装kubernets并启动
3.执行kubeadm join 192.168.147.191:6443 --token l6mql3.61w91hpwzzzul53t --discovery-token-ca-cert-hash sha256:03e3dded073878045e1831d610254904a451ff574de7bf8f1a5d812f40195947 加入到机器

在master节点查看状态:


至此安装完成,但是我的网络比较慢,docker在下载镜像。

centos7.2部署kubernets v1.10和采坑记录的更多相关文章

  1. Swift 后端开发

    作为一门新兴的现代化语言,Swift可以说是苹果在开发语言上的一次集大成之作,吸收了很多语言的优点。而且苹果还期望Swift能在服务端开发上能发挥作用。Perfect框架Perfect框架是Swift开发的Web应用服务器,它支持包括Redis、sqlite、Postgresql、MysqL、MongoDB、FileMaker这样的数据库,并且能以fastcgi或者Web服务器的形式提供服务。具体内容得到Swift源代码中可以找到。

  2. Swift构建总是在Docker中构建整个包

    使用像这样的Dockerfile时:当第3步运行时,swiftbuild将只编译应用程序一次,因为第二次执行将只使用已构建的对象,输出将是单个CompileSwiftModule’foo'然而,在运行第4步时,它似乎忽略了已经构建的任何东西,并重新重建整个事物,尽管没有任何改变且没有干净.我试过运行RUNls/foo/.build&&ls/tmp,一切似乎都到位了.我想要在现实中实现的是设置我的图像所以我首先从git克隆项目,构建它,然后copY在本地机器的任何变化中构建新的更新,但最终建立整个项目2次.

  3. 在Android上使用Docker

    是否可以在Android上构建Docker应用程序?我注意到现在没有,但内核毕竟是基于Linux内核的.如果有办法在没有生根的情况下做到这一点,那就更好了!是否有可能为Android创建Docker应用程序?如果是这样,有没有人知道任何进展?

  4. Docker 如何布置PHP开发环境

    本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊。推荐PHP开发者阅读。

  5. 一篇文章教会你部署vue项目到docker

    在前端开发中,部署项目是我们经常发生的事情,下面这篇文章主要给大家介绍了关于部署vue项目到docker的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  6. PHP 应用容器化以及部署方法

    本文给大家分享的是如何把PHP应用容器化,以及使用docker在服务器上部署PHP应用,非常的简单实用,有需要的小伙伴可以参考下

  7. 在Docker快速部署Node.js应用的详细步骤

    这篇文章的目标是为了向大家展示如何在Docker的container里运行Node.js程序,文中通过图文与示例代码介绍的非常详细,有需要的朋友们可以参考借鉴。

  8. Docker搭建自己的PHP开发环境

    本文给大家介绍的是如何在docker中搭建一个PHP的开发环境,将用 zPhal-dockerfiles 做为例子,有需要的小伙伴可以参考下

  9. 安装docker和docker-compose实例详解

    在本篇文章里小编给大家分享的是关于安装docker和docker-compose的具体实例和代码,需要的朋友们可以学习下。

  10. 一步步教你利用Docker设置Node.js

    这篇文章主要介绍了利用Docker设置Node.js的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部