主要内容

1.环境准备(2主机)

2.安装流程

3.问题分析

4.总结

环境配置(2主机)

系统:CentOS 7.3 x64 
网络:局域网(VPC) 
主机: 
master:172.16.0.17 
node-1:172.16.0.7

一、修改host配置

修改master和minion-1的host文件,使得各主机可通过主机名访问,方便更新和迁移

echo "39.96.69.98   k8s-master
47.94.174.85 k8s-node1" >> /etc/hosts

二、关闭

  1、禁用并关闭防火墙或者直接一句话 systemctl stop firewalld & systemctl disable firewalld

[root@k8s-master ~]# systemctl disable firewalld
[root@k8s-master ~]# systemctl stop firewalld [root@k8s-node-1 ~]# systemctl disable firewalld
[root@k8s-node-1 ~]# systemctl stop firewalld

  2、关闭selinux

[root@k8s-master ~]# setenforce 0

[root@k8s-node-1 ~]# setenforce 0

 临时关闭,重启后失效

  3、关闭swap

 

[root@k8s-master ~]# swapoff -a

[root@k8s-node-1 ~]# swapoff -a

临时关闭,重启后失效  

开始搭建 Master

设置hostname-将hostname修改为 k8s-master并且sudo vim /etc/hosts 追加 39.96.69.98 k8s-master

hostnamectl set-hostname k8s-master

echo "39.96.69.98   k8s-master" >> /etc/hosts

  

开启  br_netfilter kernel module

modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
echo '1' > /proc/sys/net/ipv4/ip_forward

1、安装 docker ce

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install -y docker-ce

 

2、安装 k8s

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

  

安装
yum install -y kubelet kubeadm kubectl

3、重启

sudo reboot

4、启动 docker and kublet

systemctl start docker && systemctl enable docker
systemctl start kubelet && systemctl enable kubelet

  

下面要初始化 但是下面部分需要讲解改变docker 源 才可以进行操作

更改初始化的docker 源以下步骤:

  

解决方式

最少需要2个cpu或者加个参数 --ignore-preflight-errors=NumCPU

kubeadm init --apiserver-advertise-address=47.94.174.85 --ignore-preflight-errors=NumCPU

 

提示docker pull镜像失败,开启ss

kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,于是需要变通一下。

首先查看需要使用哪些镜像

kubeadm config images list
#输出如下结果
k8s.gcr.io/kube-apiserver:v1.12.2
k8s.gcr.io/kube-controller-manager:v1.12.2
k8s.gcr.io/kube-scheduler:v1.12.2
k8s.gcr.io/kube-proxy:v1.12.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.2.24
k8s.gcr.io/coredns:1.2.2

我们通过 docker.io/mirrorgooglecontainers 中转一下

批量下载及转换标签

脚本如下

kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#docker.io/mirrorgooglecontainers#k8s.gcr.io#2' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker rmi ", $1":"$2}' |sh -x
docker pull coredns/coredns:1.2.2
docker tag coredns/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2
docker rmi coredns/coredns:1.2.2

注:coredns没包含在docker.io/mirrorgooglecontainers中,需要手工从coredns官方镜像转换下。

 

查看镜像列表

docker images
#输出如下结果
k8s.gcr.io/kube-apiserver:v1.12.2
k8s.gcr.io/kube-controller-manager:v1.12.2
k8s.gcr.io/kube-scheduler:v1.12.2
k8s.gcr.io/kube-proxy:v1.12.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.2.24
k8s.gcr.io/coredns:1.2.2

现在已经满足要求了,可以愉快的继续kubeadm init   (我采用这个方法)

kubeadm init --apiserver-advertise-address=39.96.69.98
最少需要2个cpu或者加个参数 --ignore-preflight-errors=NumCPU 即:kubeadm init --apiserver-advertise-address=39.96.69.98 --ignore-preflight-errors=NumCPU

  

(下面是另一种方式没实践过)

另外一种方法是使用kubeadm配置文件,通过在配置文件中指定docker仓库地址,便于内网快速部署。目前处于试验阶段。

生成配置文件

kubeadm config print-defaults --api-objects ClusterConfiguration >kubeadm.conf
 

将配置文件中的

imageRepository: k8s.gcr.io
 

改为你自己的私有docker仓库,比如

imageRepository: docker.io/mirrorgooglecontainers
 

kubeadm生成的配置文件目前不够完善,需要修改kubernetes版本

kubernetesVersion: v1.12.0
 

改为

kubernetesVersion: v1.12.2
 

然后运行命令

kubeadm config images list --config kubeadm.conf
kubeadm config images pull --config kubeadm.conf
kubeadm init --config kubeadm.conf
 

更多kubeadm配置文件参数详见

kubeadm config print-defaults

 总之如图上面镜像是可以的,但是下面还是有问题 分别是1、内核不支持5.0的 2、 上面补上开启  br_netfilter kernel module 3、docker 版本改上

二、kubernetes环境搭建的更多相关文章

  1. Docker Kubernetes 环境搭建

    Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...

  2. 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建

    主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...

  3. kubernetes 环境搭建

    一.规划1.系统centos 7 2.ip规划及功能分配192.168.2.24 master 192.168.2.24 etcd 192.168.2.25 node1(即minion)192.168 ...

  4. Appium+python自动化(二)- 环境搭建—下(超详解)

    简介 宏哥的人品还算说得过去,虽然很久没有搭建环境了,但是换了新电脑设备,一气呵成,将android的测试开发环境已经搭建准备完毕.上一篇android测试开发环境已经准备好, 那么接下来就是appi ...

  5. Selenium基础教程(二)环境搭建

    一.环境搭建 (1)初学者最佳环境: Python 2.7 + Selenium 2+ Firefox 46 (2)喜欢尝新的环境: Python 3.6 + Selenium 3+ Firefox ...

  6. cesium编程入门(二)环境搭建

    环境搭建 环境搭建 编译 node 安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 安装完成后,打开命令行,输入:node -v,如果结果 ...

  7. 【Hbase二】环境搭建

    此笔记仅用于作者记录复习使用,如有错误地方欢迎留言指正,作者感激不尽,如有转载请指明出处 Hbase环境搭建 Hbase环境搭建 hadoop为HA的Hbase配置 Zookeeper集群的正常部署并 ...

  8. mybatis学习(二)——环境搭建

    开发环境搭建主要包括以下几步 1.新建一个JAVA项目(可以只建一个文件夹)  2.导入jar包 log4j是一个日志包,可以不加,这里为了定位问题添加了该包,下面两个包必须需要. 3.创建数据库 C ...

  9. RocketMQ系列(二)环境搭建

    RocketMQ的基本概念在上一篇中给大家介绍了,这一节将给大家介绍环境搭建.RocketMQ中最基础的就是NameServer,我们先来看看它是怎么搭建的. NameServer RocketMQ要 ...

随机推荐

  1. Python框架学习之Flask中的蓝图与单元测试

    因为Flask框架的集成度很低,随着Flask项目文件的增多,会导致不太好管理.但如果对一个项目进行模块化管理的,那样子管理起来就会特别方便.而在Flask中刚好就提供了这么一个特别好用的工具蓝图(B ...

  2. ASM problem : ORA-15001: diskgroup "DGROUP1" does not exist or is not mounted ORA-15040: diskgroup is incomplete

    ============================================================= mos中的详细解释: ODA: After Apply ODA 12.2.1 ...

  3. sqlmap的简单使用

    SQLmap基于Python编写,只要安装了Python的操作系统就可以使用它. 一.SQLMap判断是否存在注入 1. sqlmap -u "http://XXXXXXX?id=1&quo ...

  4. # 20175329 2018-2019-2 《Java程序设计》 第二周学习总结

    学号 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨论一下JAVA与 ...

  5. 环境部署(七):linux下Jenkins+Git+JDK持续集成

    前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...

  6. dubbo源码阅读

    http://seekheap.com/posts/dubbo/dubbo-src-01-overview-and-debug-environment.html 先占坑

  7. Ionic1 环境破坏后程序重新恢复过程

    ionic platform remove android ionic platform add android cordova plugin add cordova-plugin-network-i ...

  8. Item 21: 比起直接使用new优先使用std::make_unique和std::make_shared

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 让我们先从std::make_unique和std::make_s ...

  9. .net core 监听性能,异常

    https://www.cnblogs.com/laozhang-is-phi/p/10287023.html#autoid-2-2-0

  10. 《React Native 精解与实战》书籍连载「React Native 网络请求与列表绑定」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...