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 ...
随机推荐
- rsync实战(二)
加两个需求:1.增加一个模块2.每个模块不同的用户名 步骤: .修改配置文件/etc/rsyncd.conf [backup] comment = commit path = /backup auth ...
- 搭建公司的React开发环境
记录公司环境搭建 1.安装VSCODE, 安装网上的推荐各种控件2.安装node, yarn, 会自动添加path3.先初始化npm 全部按回车默认. npm init. 初始化yarn: yarn ...
- Mutation|DNM|
生命组学 DNA序列改变的分子基础 变异来源 据研究对象,可分为两类mutation:个体上的变异和群体上的变异,群体上的变异是关联研究,eg喝酒人群vs非喝酒人群相比. 造成mutation的三类机 ...
- elementUI的select全选
elementUI中的el-select全选 <template> <el-select class="handle-select" size="min ...
- 筛选nginx访问日志文件中的域名
head -n 500 1.log |awk '{print $11}' > 1.txt 查看1.log日志文件前500行记录并打印出第11列也就是域名的那一列,并输出到1.txt文 ...
- rest framework-restful介绍-长期维护
############### django框架-rest framework ############### # django rest framework 框架 # 为什么学习这个res ...
- sql查询语句解析过程--根据网络资料整理
查询语句: (8)SELECT(9)DISTINCT(11)<TopNum> <selectlist> (1)FROM<left_table> (3)<joi ...
- 对Java8新的日期时间类的学习(二)
示例11 在Java中如何判断某个日期是在另一个日期的前面还是后面 这也是实际项目中常见的一个任务.你怎么判断某个日期是在另一个日期的前面还是后面,或者正好相等呢?在Java 8中,LocalDate ...
- ajax异步的加深理解
过去印象中的ajax的异步操作,一直还居然在$.ajax函数内部的异步,真是大错特错,实际的异步操作,是针对整个js文件来的. 今天总算意识到了,实际情况如下: $(function(){ //[弹框 ...
- 使用jQuery在屏幕上居中一个DIV
文章目录 我如何去使用jQuery在屏幕的中心设置<div>? 我喜欢给jQuery添加函数,所以这个函数将有助于: jQuery.fn.center = function () { th ...