安装kubenetes有5种部署工具,分别是kubeadm、kops、KRIB、Kubespray。本实验采用的是kubeadm部署工具。如有想了解其他部署工具,请点击这里

环境说明

角色/主机名

系统版本

CPU

MEM

IP

master

CentOS 7.7

4

4

192.168.100.80

node01

CentOS 7.7

4

4

192.168.100.81

node02

CentOS 7.7

4

4

192.168.100.82

注:系统版本要求7.4+

环境准备

检查网络(三个主机)

ping baidu.com

检查端口

Control-plane node

Protocol

Port Range

Purpose

TCP

6443

Kubernetes API server

TCP

2379-2380

etcd server client API

TCP

10250

Kubelet API

TCP

10251

kube-scheduler

TCP

10252

kube-controller-manager

Worker node(s)

Protocol

Port Range

Purpose

TCP 10250 Kubelet API
TCP 30000-32767 NodePort Services**

设置主机名映射(三个主机)

vim /etc/hosts

192.168.100.80    master
192.168.100.81    node01
192.168.100.82    node02

关闭防火墙和selinux(三个主机)

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -ri 's/(^SELINUX=).*/\1disabled/' /etc/selinux/config

配置docker和kubernetes源(三个节点)

yum install wget –y

cd /etc/yum.repos.d && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && cd -

cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Aliyun-kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF

下载docker(三个主机)

yum install docker-ce-18.06.3.ce-3.el7 -y

设置docker加速器和Cgroup drivers

mkdir /etc/docker

vim /etc/docker/daemon.json

{

"exec-opts": ["native.cgroupdriver=systemd"],

"registry-mirrors": ["https://registry.docker-cn.com"]

}

启动docker并设置开机自启动(三个主机)

systemctl start docker.service

systemctl enable docker.service

查看docker版本

docker --version

安装kubeadm, kubelet and kubectl(master)

yum install kubelet kubeadm kubectl –y

安装kubeadm,kubelet(nodes)

yum install kubelet kubeadm -y

设置Cgroup drivers和交换分区(三个主机)

vim /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS="--fail-swap-on=false --cgroup-driver=systemd"

说明:

--fail-swap-on:关闭交换分区,kubernetes不允许开启交换分区

--cgroup-driver:指定Cgroup drivers用谁

设置kubectl开机自启动(三个主机)

systemctl enable --now kubelet

设置必须的sysctl参数,让这些参数重启后仍然生效

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

sysctl --system

使用kubernetes创建单个控制平面集群(master)

kubeadm init --kubernetes-version=v1.16.3 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12  --ignore-preflight-errors=Swap

说明:

--kubernetes-version:为控制平面选择特定的Kubernetes版本。

--image-repository :指定镜像部署的地址,原地址https://k8s.gcr.io不可用

--pod-network-cidr:pod的网络地址

--service-cidr:server的网络地址

是输出一段字符保持好,后面需要用到

kubeadm join 192.168.100.80:6443 --token oc5h3c.bs1gikpbvgzbc86y \

--discovery-token-ca-cert-hash sha256:e0e176b55cb5fbf1238351e8d009bf8cc1f9a69a283a47c9ec5766564657d6a0

每次启动自动加载$HOME/.kube/config下的密钥配置文件(master)

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

将nodes主机加入kubernetes集群(nodes)

kubeadm join 192.168.100.80:6443 --token oc5h3c.bs1gikpbvgzbc86y --discovery-token-ca-cert-hash sha256:e0e176b55cb5fbf1238351e8d009bf8cc1f9a69a283a47c9ec5766564657d6a0 --ignore-preflight-errors=Swap

注意:红色部分是上面复制好的内容,加上黄色部分,请仔细看别忘了两个横杠。

安装flannel网络(master)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

验证:

查看kubernetes启动的docker容器

[root@master ~]# kubectl get -A pods -o wide

查看kubernetes集群节点

[root@master ~]# kubectl get nodes

查看各服务器的镜像

docker image list

查看下个内容kubernetes资源清单之pod点击这里

遇到什么报错,欢迎评论

采用kubeadm部署工具,部署kubernetes1.16.3的更多相关文章

  1. KingbaseES集群部署工具安装

    关键字: KingbaseES.Java.ClientTools 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows XP ...

  2. 通过kubeadm工具部署k8s集群

    1.概述 kubeadm是一工具箱,通过kubeadm工具,可以快速的创建一个最小的.可用的,并且符合最佳实践的k8s集群. 本文档介绍如何通过kubeadm工具快速部署一个k8s集群. 2.主机规划 ...

  3. 使用kubeadm安装kubernetes/部署前准备/flannel网络插件/镜像下载/

    本文内容参考<kuberneters进阶实战>/马哥的新书/推荐 部署前的准备 主机名称解析 分布式系统环境中的多主机通信通常基于主机名称进行,这在IP地址存在变化的可能性时为主机提供了固 ...

  4. 简化kubernetes应用部署工具之Helm应用部署

    介绍 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的a ...

  5. 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

    Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernetes部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取Google的相应资源包,尤其适 ...

  6. 简化Kubernetes应用部署工具-Helm

    [编者的话]微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernete ...

  7. 使用睿云智合开源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群

    一.Breeze简介 Breeze 项目是深圳睿云智合所开源的Kubernetes 图形化部署工具,大大简化了Kubernetes 部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取 G ...

  8. Spark1.0.0 应用程序部署工具spark-submit

    原文链接:http://blog.csdn.net/book_mmicky/article/details/25714545 随着Spark的应用越来越广泛,对支持多资源管理器应用程序部署工具的需求也 ...

  9. Flask采用Virtualenv+Supervisor+Nginx部署应用

    Flask采用Virtualenv+Supervisor+Nginx部署应用 -- 首先是概念解释 WSGI服务器,负责我们的app与服务器的交互,常用的有Gunicorn Web服务器,是个HTTP ...

随机推荐

  1. ng build --aot 与 ng build --prod

    angluar的编译有以下几种方式: ng build  常规的压缩操作    代码体积最大 ng build --aot   angular预编译      代码体积较小 ng build --pr ...

  2. Linux 查看 MySQL的版本信息

    Linux 查看 MySQL的版本信息 如何查看某台 Linux 主机上的 安装的 MySQL版本信息? 使用如下命令,查看 MySQL的版本信息: mysql -V 或者 mysql --versi ...

  3. 自动化部署 jenkins 插件简介

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

  4. 一些常用的java书籍的适看范围

    一些常用的java书籍的适看范围 Java三本经典的书: 1.Java核心技术书籍:适合查阅,遇到某个问题不清楚了,可以来此求证. 2.Effective  Java:对java底层的一些涉及内容,书 ...

  5. Java集合(2):两个生成器的例子:Collection生成器CollectionData及Map生成器MapData

    Collection生成器CollectionData CollectionData体现了适配器模式的设计思想,它能把实现Generator接口的类的对象(包括上一章数组中的各种RandomGener ...

  6. 抄录的Linux命令

    daemon daemon 有一个很高大上的中文名字,叫 守护进程 . 有句话是这么说的,如果 Unix 中没有了守护进程,那么 Unix 就不会是相同的. 它很有个性,是一个运行在后台且不受终端控制 ...

  7. 【AMAD】django-allauth

    简介 个人评分 简介 django-allauth1集成的Oauth API包括: Amazon (OAuth2) AngelList (OAuth2) Bitly (OAuth2) Dropbox ...

  8. (长期更新)【python数据建模实战】零零散散问题及解决方案梳理

    注1:本文旨在梳理汇总出我们在建模过程中遇到的零碎小问题及解决方案(即当作一份答疑文档),会不定期更新,不断完善, 也欢迎大家提问,我会填写进来. 注2:感谢阅读.为方便您查找想要问题的答案,可以就本 ...

  9. Nginx的负载均衡和项目部署

    nginx的作用 Nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:Nginx可以作为一个HTTP服务器进行网站的发布处理,另 ...

  10. 查找担保圈-step6-对被包含过的组进行清理,只保留未被包含过的组

    USE [test] GO /****** Object: StoredProcedure [dbo].[p04_get_groupno_cleared] Script Date: 2019/7/8 ...