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

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. Django model 层之事务管理总结

    Django model 层之事务管理总结 by:授客 QQ:1033553122 实践环境 Python版本:python-3.4.0.amd64 下载地址:https://www.python.o ...

  2. nodejs的服务器,用ffmpeg推流

    http://m.zhizuobiao.com/node/node-19061200018/ ffmpeg -list_devices true -f dshow -i dummyffmpeg -f ...

  3. Vue入门记录(一)

    效果 本文为实现如下前端效果的学习实践记录: 实践 入门的最佳实践我觉得是先去看官网,官网一般都会有快速入门指引. 根据官网的快速上手文档,构建一个新的Vue3+TypeScript,查看新建的项目结 ...

  4. Jmeter函数助手28-urldecode

    urldecode函数用于解码application/x-www-form-urlencoded字符串. String to encode in URL encoded chars:填入applica ...

  5. 【TypeScript】Re01

    参考视频: https://www.bilibili.com/video/BV14Z4y1u7pi JS已有类型: 基础类型 number / string / boolean / null / un ...

  6. 【SpringBoot】11 Web开发 Part2 模板引擎

    开发回顾: JavaWeb开发使用JSP技术,所有的页面文件必须是JSP,才能接受数据处理 JSP的好处是,数据交互方便,有JSTL补充 SpringBoot的区别: 我们最终的项目是一个jar包 内 ...

  7. 学习使用docker-compose搭建Redis哨兵集群

    搭建的记录 Redis的容器部署后,redis-server的默认安装目录为 /usr/local/bin. docker volumes 映射的文件与本地的文件共享,修改本地文件后,需要重启dock ...

  8. EF Core连接PostgreSQL数据库

    PostgreSQL数据库介绍 PostgreSQL是一个功能强大的开源对象关系型数据库管理系统(RDBMS).最初于1986年在加州大学伯克利分校的POSTGRES项目中诞生,PostgreSQL以 ...

  9. 利用系统IO读取磁盘上指定BMP图片的宽和高,以及BMP图片的大小, 并输出到终端,要求图片名称通过命令行传递

    /************************************************* * * file name:GetBmpInfo.c * author :momolyl@126. ...

  10. 如何让您的 .NET应用程序更智能-- 请参加 8.20 的 .NET Conf -- Focus on AI

    Microsoft 将于 2024 年 8 月 20 日举办免费的 .NET Conf: Focus on AI.该虚拟活动为开发人员提供了如何集成 .NET 和 AI 以增强应用程序开发和用户体验的 ...