讲述如何通过离线的方式安装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. pytest 15 fixture之autouse=True

    前言 平常写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了.当用例很多的时候,每次都传这个参数,会比较麻烦.fixture里面有个参数autouse,默认是Fa ...

  2. python_unittest学习小结

  3. AJAX原理解析与兼容方法封装

    AJAX常用参数 AJAX对象兼容 AJAX对象方法与属性 AJAX封装兼容方法源码 AJAX全称Asynchronous JavaScript and XML(异步的JavaScript与XML), ...

  4. MySQL打包执行SQL

    当一次业务处理计算服务和数据库交互较多时,将可能有大量时间浪费在数据传输上,尤其对于计算服务和数据库跨机房或跨地区部署时,浪费的时间会极其可观.为了减少时间浪费可以使用MySQL提供的SQL打包功能. ...

  5. Eclipse——如何设置代码字体大小

    eclipse默认字体太小,1920*1080下分辨不清楚,接下来介绍一下如何更改默认字体大小: 1.window-Preferences 2.General-Appearance-Colors an ...

  6. python爬虫实例项目大全

    WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...

  7. BUAA-OO-电梯调度

    BUAA-OO-电梯调度 1.设计策略 需求分析 设计一个系统,使其可以根据乘客的当前楼层和目的楼层,为乘客分配电梯资源并运送其至目的楼层. 自顶向下 根据需求,可以将整个系统分成三个部分: 处理乘客 ...

  8. selenium + python自动化测试(一)

    本篇随笔为散集.不多逼逼直接干 step 1:使用webdriver调用浏览器,webdriver支持的浏览器为Firefox(),IE(),Chrome(),不同的浏览器需要安装不同的驱动. 本文使 ...

  9. 【模板】最长公共子序列(LCS)。

    看过好多人的博客,感觉要么是太复杂要么就是太不容易理解. 那就亲自动手写一个通俗易懂的. 先定义两个数组,第一个数组为主,用第二个数组来匹配第一个,看能有多少可以对应上的. 所以,其实第一个数组的内容 ...

  10. 前端DES加密

    /** * DES加密/解密 * @Copyright Copyright (c) 2018 * @author mrDu * @see DESCore */ /* * encrypt the str ...