CentOS7 部署K8S集群,最新版1.17.3-0
小白在网上找了很多关于k8s集群部署的文档,但是版本老旧,到处踩坑,终于部署成功,记录下过程。
一、准备工作
虚拟机:VMware® Workstation 15 Pro
Xhell 6:Xshell.exe: 6.0.0025
操作系统:CentOS-7
这里对虚拟机有个要求,2cpu,内存2g,不然初始化master会警告
具体的关于虚拟机安装可以看另一篇文章https://www.cnblogs.com/CoderLinkf/p/12393993.html
部署规划
192.168.3.180 k8s-master
192.168.2.156 k8s-node1
1.关闭防火墙,这点基本所有教程都有
systemctl stop firewalld
2.关闭selinux
setenforce 0
3.关闭swap
swapoff -a 临时关闭
free 可以通过这个命令查看swap是否关闭了
vim /etc/fstab 永久关闭
4.添加主机名与IP对应的关系
vim /etc/hosts
192.168.3.180 k8s-master
192.168.2.156 k8s-node1
当然,ip要改成自己的
5.将桥接的IPV4流量传递到iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF sysctl --system
6.安装Docker
1)安装docker
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
2)设置docker服务开机自启
systemctl enable docker
systemctl start docker
3)查看docker版本,这里是最新版
docker --version
Docker version 19.03.6, build 369ce74a3c
7.添加阿里云YUM软件源
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
8.安装kubeadm,kubelet和kubectl
yum makecache fast
yum install -y kubelet kubeadm kubectl --nogpgcheck
指定版本没试过,这里直接安装最新版,并且跳过公钥检查
9.部署Kubernetes Master
1)初始化kubeadm
kubeadm init --apiserver-advertise-address=192.168.3.180 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
一样的,记得改成自己的master节点ip
当出现如下结果,表示初始化顺利,这一步要等待几分钟,并且一开始没有进度提示,一度以为卡了

查看镜像
docker images

2)接下来,将初始化结果中的命令复制出来执行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
下面的命令等会儿用来添加节点
kubeadm join 192.168.3.180:6443 --token dfug5t.cscrkl8hy8whplx7 \
--discovery-token-ca-cert-hash sha256:625f94e773c68ba673f44157e8983640a4505232c0adc0cb8a10f7c05e602c90
到此,就可以使用kubectl命令了
kubectl get node

但是是notready状态,
执行 kubectl get pods -n kube-system 命令可以看到,头两个状态是pending
10.安装flannel
1)这里,大部分文档的flannel安装链接基本都失效了,找了很久找到一个
https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
将这个文件下载下来,ftp到root下面,然后开始执行
或者执行命令保存:wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
sed -i 's@quay.io@quay.azk8s.cn@g' kube-flannel.yml
kubectl apply -f kube-flannel.yml

2)查看是否部署成功
kubectl get pods -n kube-system

3)再次执行 kubectl get node 命令,可以看到,状态是ready

安装失败了,怎么清理环境重新安装啊?执行一条命令:
kubeadm reset
然后重新初始化即可
11.Node节点加入集群
node节点虚拟机,执行1-8步,然后执行master节点初始化kubeadm时的命令
kubeadm join 192.168.3.180:6443 --token dfug5t.cscrkl8hy8whplx7 \
--discovery-token-ca-cert-hash sha256:625f94e773c68ba673f44157e8983640a4505232c0adc0cb8a10f7c05e602c90
如果一直卡在 “Running pre-flight checks” 上,则很可能是时间未同步,token失效导致
可以在master节点执行
kubeadm token list
kubeadm token create
重新生成即可
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
kubeadm reset<br>$ kubeadm join 192.168.38.11:6443 --token unnscz.aq2r62cuc14w27oa \ --discovery-token-ca-cert-hash sha256:8b79b6461e58c07333cb2851fe74fd4374af8bbbe0bf7e040b415b86ad4fb89d
12.测试kubernetes集群
在master节点中
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
然后执行 kubectl get pods 查看
kubectl get pod,svc -o wide

通过浏览器访问:http://192.168.3.180:32049 正常访问
参考文章:
https://www.cnblogs.com/caoxb/p/11243472.html
https://www.cnblogs.com/zyxnhr/p/12181721.html#_label1_8
CentOS7 部署K8S集群,最新版1.17.3-0的更多相关文章
- CentOS7 部署K8S集群
虚拟机: VMware® Workstation 12 Pro 12.5.9 build-7535481操作系统:CentOS Linux release 7.6.1810 (Core) 部署 ...
- centos7.8 安装部署 k8s 集群
centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...
- Ansible自动化部署K8S集群
Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...
- 使用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 ...
- 二进制方法-部署k8s集群部署1.18版本
二进制方法-部署k8s集群部署1.18版本 1. 前置知识点 1.1 生产环境可部署kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式 kuberadm Kubea ...
- 【02】Kubernets:使用 kubeadm 部署 K8S 集群
写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...
- 部署K8S集群
1.Kubernetes 1.1.概念 kubernetes(通常称为k8s)用于自动部署.扩展和管理容器化应用程序的开源系统.它旨在提供“跨主机集群的自动部署.扩展以及运行应用程序容器的平台”.支持 ...
- 菜鸟系列k8s——快速部署k8s集群
快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...
- 使用RKE快速部署k8s集群
一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...
随机推荐
- spark mllib lda 中文分词、主题聚合基本样例
github https://github.com/cclient/spark-lda-example spark mllib lda example 官方示例较为精简 在官方lda示例的基础上,给合 ...
- Adobe Photoshop、Adobe Illustrator、Bohemian的Sketch、Figma比较
整体来说: Adobe Photoshop:位图图像编辑处理,更适合图片编辑和数码绘画处理: Adobe Illustrator:矢量设计,更适合图标设计和图形设计处理: Sketch:矢量设计,更适 ...
- c++ 装饰器模式/包装模式
理解 使用两个隔离又继承自统一接口类的对象:方法对象(抽象/具体), 包装器对象(抽象/具体)实现多种组合只需要 n + m种实现, 而对比直接继承,则需要n*m 种实现,因此在面对多种具体类和多种额 ...
- PCoA|NMDS|STRESS|RDA |RA|Unimodal|CCA|Generalized Joint Attribute Modeling
PCoA:主坐标轴分析 数值型变量使用各种距离公式,而分类变量看是否相同,比如, Aabbcc || Aaffff 其中,两个相同,4个不同,一组6个,则(6+6-2*2)=8. PC0A与PCA区别 ...
- 爬取迷你mp4各个电影信息
网站:www.minimp4.com # coding=utf-8 import requests from lxml import etree class Minimpe_moves(object) ...
- Solving ordinary differential equations I(Nonstiff Problems),Exercise 1.2:A wrong solution
(Newton 1671, “Problema II, Solutio particulare”). Solve the total differential equation $$3x^2-2ax+ ...
- 学习4412开发板gdb和gdbserver的调试
因为有很多的小伙伴是从单片机转过来的,用惯了单片机上的JLINK调试程序,换到Linux上非常的不习惯.确实,如果能设置断点,单步调试,查看变量,那确实是太爽了,那么在我们的Linux可以做到吗,答案 ...
- built?
题目描述 There are N towns on a plane. The i-th town is located at the coordinates (xi,yi). There may be ...
- python-django-fastdfs+Nginx的安装和配置_20191122
python-django-fastdfs+Nginx的安装和配置 FastDFS文件系统 FastDFS文件系统简介: 是c语言编写的,是淘宝的架构师写的,存储淘宝的图片,后来开源了, fastDF ...
- 框架之MyBatis
什么是框架,简单的来说框架就是一个程序的半成品,而我们就是的工作就是根据我们的工作需要将其完善.MyBatis框架的作用就是将我们使用JDBC操作数据库的过程移交给MyBatis,让它来帮我们完成这些 ...