首先,我们来看一下整体的架构。

K8s的部署方式:

  • yum方式部署
  • 二进制包:手动使用tar包来部署
  • minikube:单机版,用于开发测试。
  • kubeadm:可以把kubeadmin看成一个部署工具,它简化K8s的部署过程。

(一)准备工作

  • 安装CentOS虚拟机、关闭防火墙、SELinux、禁用Swap
systemctl stop firewalld.service
systemctl disable firewalld.service
swapoff -a
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0  
  • 配置主机名和IP的host信息,编辑每个节点的/etc/hosts文件,如下:
192.168.79.111	master
192.168.79.112 node1
192.168.79.113 node2
  • 所有节点安装Docker。这里我们使用阿里云提供的镜像来快速安装
yum -y install wget
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
  • 配置Docker的镜像加速器 
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你自己阿里加速的地址.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 配置阿里云的Kubernetes源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

  

(二)使用kubeadmin部署K8s集群

  • 所有节点安装kubeadm,kubelet和kubectl。由于版本更新频繁,这里指定版本号部署
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
systemctl enable kubelet
  • 部署Kubernetes Master(在Master节点执行)
kubeadm init \
--apiserver-advertise-address=192.168.79.111 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

  注意:由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。

  • 使用kubectl工具(在Master节点执行)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装配置flannel网络。对于主节点来说,应该执行kubectl apply -f kube-flannel.yml;但是对于Node节点来说,应该是下载collenzhao/flannel:v0.11.0-amd64这个镜像(赵强老师提供的镜像),当执行join操作的时候,就会自动使用flannel网络了。
wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

  确保quay.io/coreos/flannel:v0.11.0-amd64这个镜像能够访问到。如果不可以,可以修改赵老师的镜像地址:collenzhao/flannel:v0.11.0-amd64

quay.io/coreos/flannel:v0.11.0-amd64
改为
collenzhao/flannel:v0.11.0-amd64
  • 向集群添加新节点(所有的Node节点执行)。执行在kubeadm init输出的kubeadm join命令
kubeadm join 192.168.79.111:6443 \
--token 6p5a3s.n5nuzppgf9hmxypf \
--discovery-token-ca-cert-hash \
sha256:64541d1e9d46b4597f691b1d3b60fd842a89a56a19f041c183c22a54d8d1f145
  • 在Mater节点执行命令查看集群的状态信息
kubectl get nodes

  • 测试kubernetes集群。在Kubernetes集群中创建一个pod,运行Nginx服务,验证是否正常运行
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

  • 通过浏览器访问30956端口

  • 可以使用下面的命令进行扩容,并查看pods
kubectl scale deployment nginx --replicas=3
kubectl get pod

 

【赵渝强老师】使用kubeadmin部署K8s集群的更多相关文章

  1. 【02】Kubernets:使用 kubeadm 部署 K8S 集群

    写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...

  2. 部署K8S集群

    1.Kubernetes 1.1.概念 kubernetes(通常称为k8s)用于自动部署.扩展和管理容器化应用程序的开源系统.它旨在提供“跨主机集群的自动部署.扩展以及运行应用程序容器的平台”.支持 ...

  3. 菜鸟系列k8s——快速部署k8s集群

    快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...

  4. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...

  5. 使用RKE快速部署k8s集群

    一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...

  6. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

  7. centos7.8 安装部署 k8s 集群

    centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...

  8. 二进制方法-部署k8s集群部署1.18版本

    二进制方法-部署k8s集群部署1.18版本 1. 前置知识点 1.1 生产环境可部署kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式 kuberadm Kubea ...

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

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

  10. kubernetes系列03—kubeadm安装部署K8S集群

    本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...

随机推荐

  1. Java编程指南:高级技巧解析 - Excel单元格样式的编程设置

    最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 前言 在Java开发中,处理Excel文件是一项常见的任务.在处理Excel文件时,经常需要对 ...

  2. 开源照片管理神器 PhotoPrism 安装和使用教程

    如今我们每个人都积累了海量的照片和视频,做自媒体的 UP 主们积累的照片和视频数量可能更多.面对这么多的照片和视频,我们该如何管理呢? 之前我一直用谷歌相册,因为它有很多优势,比如无限空间,支持智能整 ...

  3. python adb 安卓app性能测试

    主要是进行cpu.内存.冷启动.热启动.流量.电量的监测 可获取到相关数据,同竞类产品对比,或者同版本对比 cpustatus adb命令:adb shell "dumpsys cpuinf ...

  4. 【DataBase】MySQL 08 SQL函数 单行函数其二 数值函数

    数值函数 # 数值函数 -- ROUND() 四舍五入 SELECT ROUND(3.14),ROUND(-3.14); -- 重载,保留指定参数的小数位数 SELECT ROUND(-3.14,3) ...

  5. 机器人控制与图网络( 利用关系归纳偏置改善泛化和控制)—— Robotic Control with Graph Networks——Exploiting relational inductive bias to improve generalization and control

    英文原文: https://towardsdatascience.com/robotic-control-with-graph-networks-f1b8d22b8c86 强化学习算法是不是另一种形式 ...

  6. 网友提问:分层A*算法 —— 大规模寻路算法优化

    网友提问: 相关: https://www.cnblogs.com/devilmaycry812839668/p/10525727.html

  7. [POI2015] MOD 题解

    前言 题目链接:洛谷. 题意简述 给定一棵树,求断掉一条边再连上一条边所得的新树直径最小值和最大值,以及相应方案(你可以不进行任何操作,即断掉并连上同一条边). 题目分析 假设我们枚举断掉某一条边,得 ...

  8. 嵌入式工程师到底要不要学习ARM汇编指令?arm学习文章汇总

    嵌入式工程师到底要不要学习ARM汇编指令? 网上搜索这个问题,答案很多,大部分的建议是不要学汇编,只要学C语言. 而一口君作为一个十几年经验的驱动工程师,个人认为,汇编语言还是需要掌握的,想要搞精.搞 ...

  9. 15. 从0开始学ARM-位置无关码

    @ 目录 十九.位置无关码 一.为什么需要位置无关码? 1. exynos 4412启动流程 二.怎么实现位置无关码? 1. 什么是<编译地址>?什么是<运行地址>? 2. 举 ...

  10. Vue elementui 进度条随机颜色

    项目要求显示进度条,而且进度条的颜色不能重复,所以就有了随机进度条的想法. 实现的最终效果: <el-table-column header-align="center" a ...