采用kubeadm部署工具,部署kubernetes1.16.3
安装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的更多相关文章
- KingbaseES集群部署工具安装
关键字: KingbaseES.Java.ClientTools 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows XP ...
- 通过kubeadm工具部署k8s集群
1.概述 kubeadm是一工具箱,通过kubeadm工具,可以快速的创建一个最小的.可用的,并且符合最佳实践的k8s集群. 本文档介绍如何通过kubeadm工具快速部署一个k8s集群. 2.主机规划 ...
- 使用kubeadm安装kubernetes/部署前准备/flannel网络插件/镜像下载/
本文内容参考<kuberneters进阶实战>/马哥的新书/推荐 部署前的准备 主机名称解析 分布式系统环境中的多主机通信通常基于主机名称进行,这在IP地址存在变化的可能性时为主机提供了固 ...
- 简化kubernetes应用部署工具之Helm应用部署
介绍 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的a ...
- 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群
Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernetes部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取Google的相应资源包,尤其适 ...
- 简化Kubernetes应用部署工具-Helm
[编者的话]微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernete ...
- 使用睿云智合开源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群
一.Breeze简介 Breeze 项目是深圳睿云智合所开源的Kubernetes 图形化部署工具,大大简化了Kubernetes 部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取 G ...
- Spark1.0.0 应用程序部署工具spark-submit
原文链接:http://blog.csdn.net/book_mmicky/article/details/25714545 随着Spark的应用越来越广泛,对支持多资源管理器应用程序部署工具的需求也 ...
- Flask采用Virtualenv+Supervisor+Nginx部署应用
Flask采用Virtualenv+Supervisor+Nginx部署应用 -- 首先是概念解释 WSGI服务器,负责我们的app与服务器的交互,常用的有Gunicorn Web服务器,是个HTTP ...
随机推荐
- Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III)
Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III) 股票问题: 121. 买卖股票的最佳时机 122 ...
- 使用vue-lbsmap快速开发地图应用/GPSBD
vue-lbsmap是一款基于vue的WebGIS地图插件,经过我们多年实际项目应用中积累的技术,打造的灵活.易用.数据驱动型插件,可以帮助您快速开展地图业务层的应用开发,完全免费 <!DOCT ...
- 【转帖】知乎管理华为鸿蒙OS的介绍2
作者:虎游链接:https://www.zhihu.com/question/328382980/answer/784629132来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- Redis(1.11)Redis4.0.11 cluster 分布式集群搭建
概念与了解:Redis(1.7)Redis高可用架构(理论篇) [0]试验环境 结构图如下: (这里试验没有那么多机器,就用3台机器搭建试验) redis1是redis集群的一个节点A,上面运行了两个 ...
- VMware虚拟机下安装CentOS 6.10并配置访问外网
VMware安装包以及CentOS 6.5安装包 链接:https://pan.baidu.com/s/1wQi5GSgp4klXhtd84aoMSA 提取码:9l5y 链接:https://pan. ...
- Base64encoder干什么用的
https://baike.baidu.com/item/base64/8545775?fr=aladdin BASE64加密算法.用来给字符串加密的.已经不安全了. 一直以来Base64的加密解密都 ...
- hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式
hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式 命令介绍 命令hadoop fs –safemode get 查看安全模式状态 命令hadoop fs –safemo ...
- SQL Server中bcp命令的用法以及数据批量导入导出
原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...
- hashmap 为什么初始化容量是2的幂次方
个人理解 做下记录,不正确的地方望不吝赐教 这是hashmap初始化容量时候 对容量大小做的处理,保证初始化容量为最近的2的幂次方(JDK1.8) static final int tableSize ...
- joda-time使用
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...