------------恢复内容开始------------

一、部署docker

  1. 1.   部署docker容器虚拟化平台并配置docker的环境

下载新的yum配置文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@mater ~]# cd /etc/yum.repos.d

[root@mater yum.repos.d]# ll

  1. 2.   安装docker的环境依赖

[root@mater yum.repos.d]# yum install -y yum-utils device-mapper-persistent-data lvm2

[root@mater yum.repos.d]# yum -y install device-mapper-persistent-data lvm2

  1. 3.   配置docker的国内yum源

[root@mater yum.repos.d]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

[root@mater yum.repos.d]#ll

 

4.安装docker-ce并启动同时设置成开机自启动

 

[root@mater ~]# yum install docker-ce docker-ce-cli containerd.io -y

[root@mater ~]# systemctl start docker

[root@mater ~]# systemctl enable docker

 

5.查看docker版本信息

[root@mater ~]# docker version

 

[root@mater ~]# docker info

 

6.使用国内aliyun的docker镜像加速器,提升pull的速度;

https://cr.console.aliyun.com/

 

7.创建配置文件deamon.json

[root@mater ~]# vim /etc/docker/daemon.json

{

"registry-mirrors":["https://8w3y99jm.mirror.aliyuncs.com"]

}

[root@mater ~]# systemctl daemon-reload

[root@mater ~]# systemctl restart docker

 

 

8.下载docker镜像

[root@mater ~]# docker pull centos

[root@mater ~]# docker images

 

9.开启网络转发功能

[root@mater ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward =1

10.关闭防火墙并重新启动docker

[root@mater ~]# systemctl stop firewalld

Failed to stop firewall.service: Unit firewall.service not loaded.

[root@mater ~]# systemctl restart docker

 

11.运行docker:

 

[root@mater ~]# docker run -it centos:latest bash

[root@55faa3007fa6 /]# cat /etc/redhat-release

CentOS Linux release 8.0.1905 (Core)

 

12.安装HTTPD的docker容器

[root@mater ~]# docker run -it centos:latest /bin/bash

[root@8a1643dcfea5 /]# yum -y install httpd

方法一.制作含HTTP的docker容器

[root@mater ~]# docker ps -a

[root@mater ~]# docker commit 1e7039d965d5 centos:apache

 

方法二.通过docker build创建一个基于centos的http web 服务镜像

[root@mater ~]# mkdir /docker-build

[root@mater docker-build]# touch Dockerfile

编辑Dockerfile文件;

编辑start.sh文件

Docker-build目录下的文件

制作docker镜像

[root@mater docker-build]# docker build -t centos:httpd ./

启动制作好的docker镜像并端口转发

[root@mater docker-build]# docker run -d -p 80:80 centos:httpd

 

二、配置好基础网络及防火墙关闭

1、配置hostname主机名称:

[root@m1 ~]# vim /etc/hostname

#修改主机名称的方法:

[root@m1 ~]#hostnamectl set-hostname m1

# 配置host,使所有节点之间可以通过hostname互相访问

$ vi /etc/hosts

# <node-ip> <node-hostname>

#配置hosts 让所有节点之间可以通过hostname互相访问

[root@m1 ~]# vim /etc/hosts

192.168.23.10 m1

192.168.23.11 m2

192.168.23.12 m3

2 、安装依赖包

[root@m1 ~]# yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

3 、关闭防火墙、swap,重置iptables

@ 关闭防火墙

[root@m1 ~]# systemctl stop firewalld && systemctl disable firewalld

@ 重置iptables

[root@m1 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

@ 关闭swap

[root@m1 ~]# swapoff -a

[root@m1 ~]# sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

@  关闭selinux

[root@m1 ~]# setenforce 0

[root@m1 ~]# cd /etc/selinux

[root@m1 selinux]# vim config

SELINUX=Permissive

@ 关闭dnsmasq(否则可能导致docker容器无法解析域名)

[root@m1 ~]# systemctl stop dnsmasq && systemctl disable dnsmasq

三、配置免密登录其他服务器

[root@m1 ~]# ssh-keygen -t rsa -f y

配置免密码登录其他节点

[root@m1 ~]# for i in m1 m2 m3;do ssh-copy-id -i .ssh/id_rsa.pub $i;done

 

四、对m1 m2 m3进行做快照

五、下载k8s 1.14版本

1、系统参数设置

# 制作配置文件

[root@m1 ~]# cat > /etc/sysctl.d/kubernetes.conf <<EOF

net.bridge.bridge-nf-call-iptables=1

net.bridge.bridge-nf-call-ip6tables=1

net.ipv4.ip_forward=1

vm.swappiness=0

vm.overcommit_memory=1

vm.panic_on_oom=0

fs.inotify.max_user_watches=89100

EOF

# 生效文件

[root@m1 ~]#sysctl -p /etc/sysctl.d/kubernetes.conf

2 安装方法

# 配置yum源(mirrors.aliyun.com)

[root@m1 ~]#cat <<EOF > /etc/yum.repos.d/k8s.repo

[k8s]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

EOF

# 安装工具

# 找到要安装的版本号

[root@m1 ~]# yum list kubeadm --showduplicates | sort -r

# 安装指定版本(这里用的是1.14.0)

[root@m1 ~]# yum install -y kubeadm-1.14.0-0 kubelet-1.14.0-0 kubectl-1.14.0-0 --disableexcludes=kubernetes

[root@m1 ~]#yum install -y kubeadm-1.14.9-0 kubelet-1.14.9-0 kubectl-1.14.9-0 --disableexcludes=kubernetes

# 设置kubelet的cgroupdriver(kubelet的cgroupdriver默认为systemd,如果上面没有设置docker的exec-opts为systemd,这里就需要将kubelet的设置为cgroupfs)

# 启动kubelet

[root@m1 ~]#systemctl enable kubelet && systemctl start kubelet

3 开始部署

K8S v1.14.9的版本需要部署的IMAGES

k8s.gcr.io/kube-apiserver:v1.14.9

k8s.gcr.io/kube-controller-manager:v1.14.9

k8s.gcr.io/kube-scheduler:v1.14.9

k8s.gcr.io/kube-proxy:v1.14.9

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.3.10

k8s.gcr.io/coredns:1.3.1

 

制作好下载镜像的.sh文件

#!/bin/bash

KUBE_VERSION=v1.14.9

KUBE_PAUSE_VERSION=3.1

ETCD_VERSION=3.3.10

DNS_VERSION=1.3.1

username=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy-amd64:${KUBE_VERSION}

kube-scheduler-amd64:${KUBE_VERSION}

kube-controller-manager-amd64:${KUBE_VERSION}

kube-apiserver-amd64:${KUBE_VERSION}

pause:${KUBE_PAUSE_VERSION}

etcd-amd64:${ETCD_VERSION}

coredns:${DNS_VERSION}

    )

for image in ${images[@]}

do

    docker pull ${username}/${image}

    docker tag ${username}/${image} k8s.gcr.io/${image}

    #docker tag ${username}/${image}
gcr.io/google_containers/${image}

    docker rmi ${username}/${image}

done

 

imageRepository: k8s.gcr.io     #镜像仓库地址,在国内的话,可以修改为gcr.azk8s.cn/google_containers

[root@m1 ~]# kubeadm config images pull
--config=init-config.yaml

 

# kubeadm config print init-defaults >
init.default.yaml

# vim init-config.yaml

# kubeadm images list

Available
Commands:

init-defaults Print default init
configuration, that can be used for 'kubeadm init'

join-defaults Print default join
configuration, that can be used for 'kubeadm join'

join-defaults文件:

apiVersion:
kubeadm.k8s.io/v1beta1

caCertPath:
/etc/kubernetes/pki/ca.crt

discovery:

bootstrapToken:

apiServerEndpoint: kube-apiserver:6443

token: abcdef.0123456789abcdef

unsafeSkipCAVerification: true

timeout: 5m0s

tlsBootstrapToken: abcdef.0123456789abcdef

kind:
JoinConfiguration

nodeRegistration:

criSocket: /var/run/dockershim.sock

name: m2

修改好的join-confing.yaml文件:

apiVersion:
kubeadm.k8s.io/v1beta1

kind:
JoinConfiguration

discovery:

  bootstrapToken:

    apiServerEndpoint: 192.168.23.10:6443

    token: abcdef.0123456789abcdef

    unsafeSkipCAVerification: true

  tlsBootstrapToken: abcdef.0123456789abcdef

nodeRegistration:

  name: m2

 

安装Node 节点

[root@m2
~]# kubeadm join --config=jion-config.yaml

------------恢复内容结束------------

2020年3月16日第一天,今天计划学习:K8S Kubeadm 1.14的完美部署的更多相关文章

  1. .NET 5 Preview 1中的ASP.NET Core更新 (2020年3月16日)

    .NET 5 Preview1现在可用,可以进行评估了! .NET 5将是当前版本. 开始 要在.NET 5.0中开始使用 ASP.NET Core,请安装.NET 5.0 SDK. 如果您使用的是W ...

  2. 6月28日至7月6日第一周小学期学习c++编程收获

    6.28日开始,进入小学期,也就是在10天十天时间内集中练习,以提高编程能力.此次小学期的作业共有十道题,其中分为四大类,系统类,数学类,游戏类,链表类. 我开始的时候面对第一,二题,系统类,因为当时 ...

  3. 2019年IntelliJ IDEA 最新注册码,亲测可用(截止到2020年3月11日)

    2019年IntelliJ IDEA 最新注册码(截止到2020年3月11日) 操作步骤: 第一步:  修改 hosts 文件 ~~~ 在hosts文件中,添加以下映射关系: 0.0.0.0 acco ...

  4. 北京Uber优步司机奖励政策(12月16日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 北京Uber优步司机奖励政策(11月16日~11月22日)

    用户组:人民优步“关羽组”(适用于11月16日-11月22日)奖励政策: 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/ ...

  6. 20.Nodejs基础知识(上)——2019年12月16日

    2019年12月16日18:58:55 2019年10月04日12:20:59 1. nodejs简介 Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触 ...

  7. 一个由"2020年1月7日 京东出现的重大 Bug 漏洞"引起的思考...

    2020年1月7日,京东由于优惠券设置错误,导致大量产品以0元或者超低价成交,并且发货.网传小家电被薅24万件,损失损失金额高达7000多万.很多网友表示收到货了,在网上晒出到货截图.下面为购买截图: ...

  8. .NET Conf 2020大会将于2020年11月10日--- 11月12日举行 (UTC)时区

    .NET Conf 2020大会将于2020年11月10日--- 11月12日举行 (UTC)时区 开始时间 2020年11月10日 08:00 (PT) | 16:00 (UTC)| 24:00(北 ...

  9. 11月16日《奥威Power-BI基于SQL的存储过程及自定义SQL脚本制作报表》腾讯课堂开课啦

           上周的课程<奥威Power-BI vs微软Power BI>带同学们全面认识了两个Power-BI的使用情况,同学们已经迫不及待想知道这周的学习内容了吧!这周的课程关键词—— ...

随机推荐

  1. 面试BAT问的最多的27道MyBatis 面试题(含答案和思维导图总结)

    前言 关于MyBatis总结了一个思维导图希望对大家有帮助 什么是 Mybatis? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身, ...

  2. 美食vlog如何剪辑?用什么视频制作软件剪辑比较好?

    是不是发现自己拍摄的美食永远没有美食博主拍出来的好看?那么美食vlog如何剪辑?用什么视频制作软件剪辑比较好呢?下面小编就教大家用视频编辑软件会声会影强大的颜色分级功能就能拯救你的美食vlog. 接下 ...

  3. H5系列之canvas

    what is canvas?(什么是canvas) 其实他只是H5里面的一个标签而已,那么他作为一个标签,肯定有他的用途,他就像是一幅画布,等待着你来作画.可以说,他只是一个容器而已,需要配合着Ja ...

  4. 对数组进行排序成最小的,相当于自己实现了一次String的compareTo函数,不过是另类的。

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. //一气呵成 ...

  5. AFNetWorking 丢失数据

    问题描述: 使用AFNetWorking请求数据,请求成功,但是拿不到所需要的数据,但是使用其他平台都可以拿到数据. 原因分析: AFNetWorking无法解析. 解决方式: AFJSONRespo ...

  6. dubbo ChannelHandler

    记得我们在做服务暴露的bind和服务调用的connect都有一个ExchangeHandler的实例作为入参: 这个handler最终会利用装饰者模式被封装若干层,Dubbo中提供了大量的Handle ...

  7. GitHub 访问不顺怎么办?在线等,急

    在日常的工作生活学习中 经常会遇到无法访问 GitHub.访问不稳定等等突发情况 这不,今天群里的朋友们又双叒叕遇到了问题-- 为方便用户从 GitHub 快速备份开源仓库,稳定访问,CODING 现 ...

  8. CentOS7系统tab命令补全

    在新安装的CentOS7系统中,如果没有安装命令补全的话,在systemctl管理服务的时候就没法用tab来自动补全,因此在安装完系统后,我们要再安装命令补全这个软件: yum -y install ...

  9. 因为一个Docker问题,我顺手整理从安装到常用命令操作手册

    今天,自己写了一部分业务代码,是常规代码的另外一种方式,不能在公司的服务器上测试,就自己在PC端搭建了一套和公司集群一样的模板,因为公司的业务模块的测试有单独的服务器(这一块还是我很稀罕的),但是,第 ...

  10. python核心高级学习总结7---------正则表达式

    正则表达式在爬虫项目中应用很广泛,主要方面就是在字符串处理方面,经常会涉及到字符串格式的校验,用起来经常要查看文档才能完成,所以抽了个时间将正则的内容复习了一下. Start re---导入re模块使 ...