1  用如下方法安装指定版本的docker,但是我的环境会报错

# 安装rpm
apt install rpm # 下载 RPM 包, docker 17.03. 版本
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm -O /tmp/docker/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm -O /tmp/docker/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
# 测试安装
rpm -Uvh --test /tmp/docker/*.rpm
# 安装 Docker
rpm -Uvh /tmp/docker/*.rpm

上面的方法我没能安装成功, 用如下的方法安装docker,没有指定版本,导致后面会有一点问题

apt-get update && apt-get install docker.io

2 创建 docker user

# 创建用户
useradd -G docker -m kubeusr
# 手动添加 docker 组给 kubeusr
usermod -a -G docker kubeusr

3  k8s prepare(所有节点)

# 关闭 selinux(临时关闭,不需要重启机器)
setenforce
# 手动修改 selinux 配置文件,设置永久关闭(需要重启动机器)
vi /etc/selinux/config (我没有这个文件,所以就是临时关闭,如果重启机器后,还要运行临时关闭的命令)
SELINUX=enforcing改为SELINUX=disabled
systemctl stop iptables
systemctl disable iptables
systemctl stop firewalld
systemctl disable firewalld # 关闭 swap
# 暂时关闭
swapoff -a
# 永久关闭
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 开启 iptable 转发
sysctl net.bridge.bridge-nf-call-iptables=
cat /proc/sys/net/bridge/bridge-nf-call-iptables

4:安装 K8S(所有节点)

kubelet: 运行在Cluster所有节点上,负责启动Pod和容器。

kubeadm: 初始化Cluster。

kubectl: 是K8S的命令行工具。可以部署和管理应用,查看各种资源,创建、删除、和更新各种组件。

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add && \
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list && \
apt-get update -q && \
apt-get install -qy kubelet=1.10.- kubectl=1.10.- kubeadm=1.10.- kubernetes-cni

5: 初始化 k8s(主节点)

kubeadm init --config kubeadm-init-args.conf
kubeadm-init-args.conf文件如下:
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
apiServerExtraArgs:
allow-privileged: "true"
service-node-port-range: -
networking:
podSubnet: 10.244.0.0/
(这个命令执行完后,会有token , 和hash sha等,需要保存下来,记住)
# 复制 k8s 配置文件到 kubeusr 用户
mkdir /home/kubeusr/.kube && \
cp /etc/kubernetes/admin.conf /home/kubeusr/.kube/config && \
chown -R kubeusr:kubeusr /home/kubeusr/.kube # 切换到 kubeuser 用户
su - kubeusr
# 安装 flannel 网络插件(为了能让K8s Cluster工作,必须安装Pod网络,否则Pod之间无法通信
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml # join 节点(在node节点上执行下列命令)

# 在master上执行kubeadmtoken list 可以查看token
kubeadm join 9.42.9.178: --token nmnhs0.ab7ehtvg9hhh3ngb --discovery-token-ca-cert-hash sha256:77541f60164a662d008f256391dbbba6bdbdd516d5711a44e1ab4276899431ec (注意: 因为docker版本我没有装17.0.3的版本,而是安装了一个新的版本,所以执行join的时候,会报错,需要
 --ignore-preflight-errors=CRI)

6 最后集群构建完毕

kubectl get pods --all-namespaces

kubectl get pods -n default

注意:

                如果想重新初始化集群,使用kubeadm reset, 会把kubeadm init和kubeadm  join都会被撤销,因为token, sha等认证信息都变化了,需要重新init ,

                 重新join。

               一开始k8s的版本装错了,需要全卸载载重新装: apt-get remove kubelet kubeadm kubectl kubernetes-cni

第三章 k8s cluster环境创建的更多相关文章

  1. 第三章 Spring.Net 环境准备和搭建

    在前面一章我们介绍了依赖注入,控制反转的概念.接下来我们来真正动手搭建一下Spring.Net的环境,看一下Spring.Net 中的控制反转和依赖注入是什么样子. 3.1  Spring.Net 下 ...

  2. Groovy学习:第三章 Groovy开发环境

    本章将继续深入Groovy语言,首先学习Groovy脚本,包括从命令行编译和运行Groovy脚本,Groovy Shell,和Groovy Console.你将学会使用Groovy语言来建立域对象.控 ...

  3. 第三章:ionic环境搭建之windows篇

    下面是在windows操作系统上面安装ionic的步骤,已经在Windows 10/ 7/ XP下面通过验证. 安装JDK 1.1 下载(http://www.oracle.com/technetwo ...

  4. 第三章 k8s的node节点配置

    一.修改主机名 hostnamectl set-hostname xxx 二.修改hosts文件vim /etc/hosts 三.将写好的hosts文件拷贝到其他节点 scp /etc/hosts r ...

  5. SpringCloud学习第三章-springcloud 父项目创建

    父项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  6. Python爬虫学习==>第三章:Redis环境配置

    学习目的: 学习非关系型数据库环境安装,为后续的分布式爬虫做基建 正式步骤 Step1:安装Redis 打开http://www.runoob.com/,搜索redis安装 打开搜索的内容,得到red ...

  7. Unity 黑暗之光 笔记 第三章

    第三章 角色控制   1.创建游戏运行场景并导入素材资源 2.创建和管理标签 1 //const 表明这个是一个共有的不可变的变量 2 public const string ground = &qu ...

  8. “全栈2019”Java多线程第三章:创建多线程之实现Runnable接口

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  9. [转]TEC1401.Report开发技术总结 - 第三章 使用Oracle Reports开发报表-创建一个分组报表(2/4)

    本文转自:http://blog.csdn.net/deepsea_allen/article/details/53900284 第三章   创建一个分组报表 1.     建立数据模型 数据模型用于 ...

随机推荐

  1. cookie注入原理及注入检测

    通常我们的开发人员在开发过程中会特别注意到防止恶意用户进行恶意的注入操作,因此会对传入的参数进行适当的过滤,但是很多时候,由于个人对安全技术了解的不同,有些开发人员只会对get,post这种方式提交的 ...

  2. 关于PHP页面显示乱码问题的解决

    关于PHP页面显示乱码问题的解决 网页乱码一直是网络编程高手都头痛的问题,我是一个PHP Web编程的初学者,学习当中也遇到了这个问题,查找了相关的资源,总结如下: 一般的中文编码:gb2312,gb ...

  3. Oracle解决中文乱码

    原因 经过一番查证,发现问题的源头不是出现在PLSQL上,而是出现在我们的Oracle上,由于我们的Oracle数据库里的字符集不支持中文导致的,既然知道了原因,就好办了,我们就配置我们的Oracle ...

  4. 个人Blog小程序开发完毕

    今天忙了一天,算是把这个小程序弄好了,包括小程序前端页面.接口对接.后台系统.服务器架 设.域名备案.证书安装(现在阿里云的免费证书怎么审核要这么久啊,到现在还在审核中) 先上截图: 这个背景图片的替 ...

  5. FFmpeg再学习 -- 硬件加速编解码

    为了搞硬件加速编解码,用了一周时间来看 CUDA,接下来开始加以总结. 一.什么是 CUDA (1)首先需要了解一下,什么是 CUDA. 参看:百度百科 -- CUDA 参看:CUDA基础介绍 参看: ...

  6. OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)

    1 UI5代码结构 上一次我们一起用了20秒的时间完成一个UI5版的Hello World.应用打开后有一个按钮,按钮的文字是Hello World,点击这个按钮之后,按钮会慢慢的消失掉(Fade o ...

  7. iPhone开机键坏了如何开机

    作死 开机 [苹果手机/iphone开机键坏了怎么开机]

  8. java 实现共享锁和排它锁

    一直对多线程有恐惧,在实现共享锁和排它锁之后,感觉好了很多. 共享锁    就是查询的时候,如果没有修改,可以支持多线程查询: 排它锁    就是修改的时候,锁定共享锁,停止查询,同时,锁定排它锁,只 ...

  9. Bezier曲线原理—动态解释

    公式线性公式给定点P0.P1,线性贝兹曲线只是一条两点之间的直线.且其等同于线性插值.这条线由下式给出: 一阶贝赛尔曲线上的由两个点确定 P0 和P1,当t在0--->1区间上递增时,根据此会得 ...

  10. LOJ2323. 「清华集训 2017」小 Y 和地铁 【搜索】【思维】【好】

    LINK 思路 首先如果直接算每一个段有三个决策 左/右 上/下 跨不跨过端点 这样的复杂度是\((2^3)^{22}\),显然是无法接受的 然后考虑怎么优化这个东西 首先左右这个决策是没有意义的 因 ...