主要内容

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. pytorch学习-AUTOGRAD: AUTOMATIC DIFFERENTIATION自动微分

    参考:https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner-blitz-autog ...

  2. Vim 安装 YouCompleteMe

    Vim 下的自动补全,最好的工具莫过于 YouCompleteMe,官方文档在这里 http://valloric.github.io/YouCompleteMe/ 安装稍显复杂,以下记录我的过程. ...

  3. Linux内核入门到放弃-进程管理和调度-《深入Linux内核架构》笔记

    进程优先级 硬实时进程 软实时进程 普通进程 O(1)调度.完全公平调度器 抢占式多任务处理(preemptive multitasking):各个进程都分配到一定的时间段可以执行.时间段到期后,内核 ...

  4. Shell第二篇:正则表达式和文本处理工具

    一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 生活中处处都是正则:     比如我们描述:4条腿   ...

  5. http基本get和post请求

    get请求: private static void httpGet(){ BufferedReader br = null; HttpURLConnection conn = null; try { ...

  6. Linux下快速配置Java开发环境

    1.下载 jdk8官网下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...

  7. 面试 16:栈的压入压出队列(剑指 Offer 第 22 题)

    我们今天继续来看看周五留下的习题: 面试题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如:压入序列为{1,2,3,4,5},那{ ...

  8. .NET Core 中正确使用 HttpClient 的姿势

    为了更方便在服务端调用 HTTP 请求,微软在 .NET Framework 4.x 的时候引入了 HttpClient.但 HttpClient 有很多严重问题,一直饱受诟病,比如 InfoQ 的这 ...

  9. 福州大学软件工程1816 | W班 第10次作业[个人作业——软件产品案例分析]

    作业链接 个人作业--软件产品案例分析 评分细则 本次个人项目分数由两部分组成(课堂得分(老师/助教占比60%,学生占比40%)满分40分+博客分满分60分) 课堂得分和博客得分表 评分统计图 千帆竞 ...

  10. Windows10下安装VMware虚拟机并搭建CentOS系统环境

    转载: http://blog.51cto.com/10085711/2069270 操作系统 Windows 10专业版(64位) VMware虚拟机 产品:VMware® Workstation ...