Kubernetes 1.10.0离线安装
讲述如何通过离线的方式安装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离线安装的更多相关文章
- CDH5.10.0 离线安装(共3节点) 转
1.安装方式 CDH的离线部署安装,即Parcel包(推荐) 2.角色规划 三个节点对应的角色: 3.基本环境配置(在每个节点上都要配置) (1)关闭防火墙 #/etc/init.d/iptables ...
- 从零到一,利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernetes v1.10.0
说明 初步接触kubernets,记录学习过程 本教程目的利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernets v1.10.0 环境信息 节点IP地址 角色 ...
- k8s Kubernetes v1.10 最简易安装 shell
k8s Kubernetes v1.10 最简易安装 shell # Master 单节点快速安装 # 最简单的安装shell,只为快速部署k8s测试环境 #环境centos 7.4 #1 初始化环境 ...
- [原][工具][windows10安装][0x800F081F]windows 10 如何离线安装.net framework3.5 || 安装出现错误代码0x800F081F时如何解决
参考解决方案:https://zhidao.baidu.com/question/1896669183365806820.html?fr=iks&word=win10%B0%B2%D7%B0+ ...
- CDH6.1.0离线安装——笔记
一. 概述 该文档主要记录大数据平台的搭建CDH版的部署过程,以供后续部署环境提供技术参考. 1.1 主流大数据部署方法 目前主流的hadoop平台部署方法主要有以下三种: Apache hadoop ...
- IIS 10.0 无法安装 URL rewrite重写模块 2.0解决办法
[问题描述]系统升级到Windows10后,IIS是10.0的,发现无法安装 URLRewrite重写模块 2.0. [解决办法]打开注册表编辑器,在HKEY_LOCAL_MACHINE\SOFTWA ...
- cdh-5.10.0搭建安装
1.修改主机名为master, slave1, slave2 vim /etc/sysconfig/network HOSTNAME = master HOSTNAME = slave1 HOSTNA ...
- Eclipse 4.5.0 离线安装 Veloeclipse 插件
下载 Veloeclipse 在 Eclipse eclipse-jee-mars-R-win32-x86_64 版本 4.5.0,Build id 为 20150621-1200,离线安装 Velo ...
- 分享ArcGIS Server 10.0修复安装心得
最近,捣腾了一阵子在xp系统上安装ArcGIS Server10.0(下方均简称server),解决了一些初学者可能面临的problem,给大家贴出来, 希望能够给初学者一些有益的帮助. 我的系统环境 ...
随机推荐
- pytest 15 fixture之autouse=True
前言 平常写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了.当用例很多的时候,每次都传这个参数,会比较麻烦.fixture里面有个参数autouse,默认是Fa ...
- python_unittest学习小结
- AJAX原理解析与兼容方法封装
AJAX常用参数 AJAX对象兼容 AJAX对象方法与属性 AJAX封装兼容方法源码 AJAX全称Asynchronous JavaScript and XML(异步的JavaScript与XML), ...
- MySQL打包执行SQL
当一次业务处理计算服务和数据库交互较多时,将可能有大量时间浪费在数据传输上,尤其对于计算服务和数据库跨机房或跨地区部署时,浪费的时间会极其可观.为了减少时间浪费可以使用MySQL提供的SQL打包功能. ...
- Eclipse——如何设置代码字体大小
eclipse默认字体太小,1920*1080下分辨不清楚,接下来介绍一下如何更改默认字体大小: 1.window-Preferences 2.General-Appearance-Colors an ...
- python爬虫实例项目大全
WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...
- BUAA-OO-电梯调度
BUAA-OO-电梯调度 1.设计策略 需求分析 设计一个系统,使其可以根据乘客的当前楼层和目的楼层,为乘客分配电梯资源并运送其至目的楼层. 自顶向下 根据需求,可以将整个系统分成三个部分: 处理乘客 ...
- selenium + python自动化测试(一)
本篇随笔为散集.不多逼逼直接干 step 1:使用webdriver调用浏览器,webdriver支持的浏览器为Firefox(),IE(),Chrome(),不同的浏览器需要安装不同的驱动. 本文使 ...
- 【模板】最长公共子序列(LCS)。
看过好多人的博客,感觉要么是太复杂要么就是太不容易理解. 那就亲自动手写一个通俗易懂的. 先定义两个数组,第一个数组为主,用第二个数组来匹配第一个,看能有多少可以对应上的. 所以,其实第一个数组的内容 ...
- 前端DES加密
/** * DES加密/解密 * @Copyright Copyright (c) 2018 * @author mrDu * @see DESCore */ /* * encrypt the str ...