讲述如何通过离线的方式安装Kubernetes,主要用于对Kubernetes的研究学习,不建议在生产环境使用,安装包获取地址:

链接:https://pan.baidu.com/s/1nX5_memy8TKrnw1auOsB8Q 密码:zsw7

运行环境

名称 操作系统 配置 IP
master CentOS 7 4核2G内存 192.168.132.130
node CentOS 7 4核8G内存 192.168.132.136

服务器的配置建议给高一点,可以避免大部分问题。

Master安装

1.1 设置分区

如果有数据盘需要挂载,可以先设置分区,没有可跳过此步骤。

mkdir -p /var/lib/docker -- 创建存放docker的目录

fdisk -l  -- 查看硬盘信息,确定需要挂载的硬盘信息

mkfs.ext4 /dev/xvde -- 格式化硬盘

mount /dev/xvde /var/lib/docker 挂载磁盘

blkid --查看硬盘信息

vim /etc/fstab --将新分区的blkid写入/etc/fstab,内容参考:

UUID={uuid} /var/lib/docker ext4 defaults 0 0

保存退出,并重启机器。

1.2 修改主机名

Kubernetes的主机名不能包含大写字母,如主机名含有大写字母请先修改。

hostnamectl set-hostname xxxxx

1.3 关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

1.4 禁止SELINNUX

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.5 禁止swap

swapoff -a

编辑/etc/fstab,并注销掉swap

vi /etc/fstab

1.6 设置网桥

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
sysctl --system

1.7 安装docker

拷贝kubernetes-1.10.tar.gz到/root目录。

解压安装包:

cd /root

tar -zvxf kubernetes-1.10.tar.gz -C /root

tar -zvxf /root/k8s-1.10/docker-17.03.0-ce.tgz -C /root/k8s-1.10

拷贝docker:

chmod +x /root/k8s-1.10/docker/*

cp /root/k8s-1.10/docker/* /usr/bin/

cp /root/k8s-1.10/docker.service /etc/systemd/system/

运行docker:

systemctl daemon-reload

systemctl enable docker.service

systemctl restart docker.service

iptables -F

iptables -P FORWARD ACCEPT

iptables -F

1.8 加载Kubernetes相关镜像

docker load -i /root/k8s-1.10/kubernetes-1.10.tar

1.9 安装kubeadm,kubectl,kubelet,cni

cd /root/k8s-1.10

chmod +x /root/k8s-1.10/kube/*

cp /root/k8s-1.10/kube/* /usr/bin/

cp /root/k8s-1.10/kubelet.service /etc/systemd/system/

mkdir -p /etc/systemd/system/kubelet.service.d

cp /root/k8s-1.10/10-kubeadm.conf /etc/systemd/system/kubelet.service.d

systemctl daemon-reload

systemctl enable kubelet.service

mkdir -p /opt/cni/bin

cd /root/k8s-1.10

tar -zvxf cni-plugins-amd64-v0.6.0.tgz -C /opt/cni/bin

1.10 安装socat和ebtables

rpm -ivh /root/k8s-1.10/rpm/socat-1.7.3.2-2.el7.x86_64.rpm

rpm -ivh /root/k8s-1.10/rpm/ebtables-2.0.10-16.el7.x86_64.rpm

注:如果已经安装了可以跳过此步骤,如果已安装了ebtables,再次安装的话,会提示冲突,但不会影响,可忽略。

1.11 初始化Master

kubeadm init --kubernetes-version=1.10.0 --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.132.130

注:192.168.132.130为master物理ip。

保存好上图这句指令,后续节点加入集群需要使用。

1.12设置kubelet config环境变量

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

1.13 创建网络模型

cd /root/k8s-1.10

kubectl create -f calico.yaml

1.14 检查所有组件是否启动

kubectl get po -n kube-system

Node安装

重复步骤1.1到1.0

执行1.11中生成的指令:kubeadm join xxx...

注:如果失败,可在master上执行iptables -F再重新尝试加入。

在master执行kubectl get nodes查看节点加入情况:

给Node打标签,在master执行以下指令:

kubectl label node xxx kubernetes.io/role=node

测试部署

准备nginx的部署yaml,nginx.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
nodeSelector:
kubernetes.io/role: node
containers:
- name: nginx
image: nginx:1.13
ports:
- containerPort: 80 --- kind: Service
apiVersion: v1
metadata:
name: nginx
labels:
app: nginx
namespace: default
spec:
selector:
app: nginx
type: NodePort
ports:
- name: nginx
nodePort: 30000
port: 80
protocol: TCP
targetPort: 80

在master执行kubectl create -f nginx.yaml

使用node的地址http://192.168.132.136:30000/进行访问:

补充说明

在node上其实没必要安装所有master上的组件,但这样需要master,node各做一个安装包。为了方便,在node上安装了和master相同的组件。

Kubernetes 1.10.0离线安装的更多相关文章

  1. CDH5.10.0 离线安装(共3节点) 转

    1.安装方式 CDH的离线部署安装,即Parcel包(推荐) 2.角色规划 三个节点对应的角色: 3.基本环境配置(在每个节点上都要配置) (1)关闭防火墙 #/etc/init.d/iptables ...

  2. 从零到一,利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernetes v1.10.0

    说明 初步接触kubernets,记录学习过程 本教程目的利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernets v1.10.0 环境信息 节点IP地址 角色 ...

  3. k8s Kubernetes v1.10 最简易安装 shell

    k8s Kubernetes v1.10 最简易安装 shell # Master 单节点快速安装 # 最简单的安装shell,只为快速部署k8s测试环境 #环境centos 7.4 #1 初始化环境 ...

  4. [原][工具][windows10安装][0x800F081F]windows 10 如何离线安装.net framework3.5 || 安装出现错误代码0x800F081F时如何解决

    参考解决方案:https://zhidao.baidu.com/question/1896669183365806820.html?fr=iks&word=win10%B0%B2%D7%B0+ ...

  5. CDH6.1.0离线安装——笔记

    一. 概述 该文档主要记录大数据平台的搭建CDH版的部署过程,以供后续部署环境提供技术参考. 1.1 主流大数据部署方法 目前主流的hadoop平台部署方法主要有以下三种: Apache hadoop ...

  6. IIS 10.0 无法安装 URL rewrite重写模块 2.0解决办法

    [问题描述]系统升级到Windows10后,IIS是10.0的,发现无法安装 URLRewrite重写模块 2.0. [解决办法]打开注册表编辑器,在HKEY_LOCAL_MACHINE\SOFTWA ...

  7. cdh-5.10.0搭建安装

    1.修改主机名为master, slave1, slave2 vim /etc/sysconfig/network HOSTNAME = master HOSTNAME = slave1 HOSTNA ...

  8. Eclipse 4.5.0 离线安装 Veloeclipse 插件

    下载 Veloeclipse 在 Eclipse eclipse-jee-mars-R-win32-x86_64 版本 4.5.0,Build id 为 20150621-1200,离线安装 Velo ...

  9. 分享ArcGIS Server 10.0修复安装心得

    最近,捣腾了一阵子在xp系统上安装ArcGIS Server10.0(下方均简称server),解决了一些初学者可能面临的problem,给大家贴出来, 希望能够给初学者一些有益的帮助. 我的系统环境 ...

随机推荐

  1. 关于bytes和bytearray

    背景 平时工作因为有批量线上数据进行更新,通过Python程序连接数据库,利用连接池和gevent的并发性能,处理大量数据. 因为数据方提供的数据表结构中带有varbinary类型字段,并非全部,所以 ...

  2. 使用logstash同步MySQL数据到ES

    使用logstash同步MySQL数据到ES 版权声明:[分享也是一种提高]个人转载请在正文开头明显位置注明出处,未经作者同意禁止企业/组织转载,禁止私自更改原文,禁止用于商业目的. https:// ...

  3. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)

    python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...

  4. Java中快捷键

    Fond表示字体 size表示字号 IDEA的基本配置 IDEA中常用的快捷键 Intellij IDEA基本快捷键 Ctrl+G 跳转到指定行 Ctrl+F4 关闭当前编辑页面 Ctrl+F 搜索 ...

  5. git怎样删除未监视的文件untracked files

    # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件/目录也 ...

  6. Ueditor增加文字竖排显示和从右向左输入(支持蒙古文和维吾尔文)

    平时我们在ueditor中都是输入的中文,排版都是从左向右输入.但是当输入一些少数民民族言时,ueditor却不能正常显示. 例如蒙古文字,传统蒙文是竖排书写.如下图:传统蒙古文排文方式,<蒙古 ...

  7. Anniversary party POJ - 2342 (树形DP)

    题目链接:  POJ - 2342 题目大意:给你n个人,然后每个人的重要性,以及两个人之间的附属关系,当上属选择的时候,他的下属不能选择,只要是两个人不互相冲突即可.然后问你以最高领导为起始点的关系 ...

  8. iTOP-4412/4418/6818开发板-fastboot烧写脚本

    在 iTOP-4412,4418,6818 开发板烧写的时候,使用的是 fastboot 工具. fastboot 工具需要在 cmd.exe 中调用,每次都需要输入烧写命令,这样步骤有点多.在程序员 ...

  9. java控制多线程同时写一个文件

    最近出现一个需求,大体要做的就是控制多线程同时操作一个文件.当时第一个反应是不要用synchronized,太low了,然后我就使用了读写锁ReentrantReadWriteLock,然后写完静下来 ...

  10. Ubuntu下使用Sublime Text 3配置Python开发环境

    因为电脑配置有些低端,所以只能使用Sublime来当作Python的IDE. 1.下载Sublime Text 3并安装 首先去官网找到64位的.tar.bz2的压缩文件下载: 使用命令或归档管理器将 ...