Kubernetes(k8s)1.12.2集群搭建
本博客搭建k8s集群1.12.2版本
1. 准备2台以上最低2核4G的服务器
2. 关闭机器的防火墙
1 |
systemctl disable firewalld |
生产环境下建议不要关闭防火墙,只开放k8s所用的端口
3. 配置docker和k8s仓库为阿里云镜像仓库
首先选择一台性能比较好的机器作为主节点
1 |
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
- vim /etc/yum.repos.d/ubernetes.repo
1 |
[kubernetes] |
1 |
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg |
4. 安装docker和kubelet
1 |
yum install kubeadm-1.12.2-0.x86_64 docker-ce-18.06.0.ce kubelet-1.12.2-0.x86_64 |
这里指定了docker和kubelet的版本,如果不指定的话默认下载最新的版本,如果你的服务器可以上Google的话可以选择执行以下命令下载最新版
1 |
yum install kubeadm docker-ce kubelet |
5. 下载k8s镜像
这里分为两种场景
能上Google的同学看这个
- vim /usr/lib/systemd/system/docker.service 增加如下配置
1 |
Environment="HTTPS_PROXY=http://www.ik8s.io:10080" |
- 加载配置文件
1 |
systemctl daemon-reload |
- 设置docker开机启动并启动docker
1 |
systemctl enable docker |
不能的同学看这个
- 设置docker开机启动并启动docker
1 |
systemctl enable docker |
- 下载k8s镜像
1 |
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.12.2 |
- 镜像tag更新
因为来自mirrorgooglecontainers或者coredns的镜像k8s是不认识的,所以我们需要修改一下上方下载的镜像的tag
1 |
docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.12.2 k8s.gcr.io/kube-apiserver-amd64:v1.12.2 docker tag mirrorgooglecontainers/kube-controller-manager-amd64:v1.12.2 k8s.gcr.io/kube-controller-manager-amd64:v1.12.2 docker tag mirrorgooglecontainers/kube-scheduler-amd64:v1.12.2 k8s.gcr.io/kube-scheduler-amd64:v1.12.2 docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.12.2 k8s.gcr.io/kube-proxy-amd64:v1.12.2 docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1 docker tag mirrorgooglecontainers/etcd-amd64:3.2.24 k8s.gcr.io/etcd-amd64:3.2.24 docker tag coredns/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2 |
6. 验证网络及k8s依赖
- 验证网络
1 |
cat /proc/sys/net/bridge/bridge-nf-call-ip6tables |
查看两条命令是否返回的都是1
- 验证k8s依赖
1 |
rpm -ql kubelet |
执行以上命令看屏幕结果是否如下
1 |
/etc/kubernetes/manifests #清单目录 |
- 设置k8s开启启动
1 |
systemctl enable kubelet |
7. 初始化k8s
1. 系统检查
1 |
kubeadm init --kubernetes-version=v1.12.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 |
注意如果使用最新版本的话不需要使用–kubernetes-version参数
命令执行后k8s会进行一系列的检查,比如说:
- Linux 内核的版本必须是否是 3.10 以上?
- Linux Cgroups 模块是否可用?
- 机器的 hostname 是否标准?在 Kubernetes 项目里,机器的名字以及一切存储在 Etcd 中的 API 对象,都必须使用标准的 DNS 命名(RFC 1123)。
- 用户安装的 kubeadm 和 kubelet 的版本是否匹配?
- 机器上是不是已经安装了 Kubernetes 的二进制文件?
- Kubernetes 的工作端口 10250/10251/10252 端口是不是已经被占用?
- ip、mount 等 Linux 指令是否存在?
- Docker 是否已经安装?
- ……
检查结束以后如果没问题的话名字执行结束最后会有这样的一条指令出现
1 |
kubeadm join 172.26.15.165:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a |
这个就是node节点需要加入主节点时所需要的token,很重要,记下来,一会会用到
2. 系统检查
1 |
mkdir -p $HOME/.kube |
1 |
kubectl get nodes |
查看节点status是否为NotReady
3. 安装flannel
1 |
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml |
1 |
kubectl get nodes |
查看节点status是否为Ready
至此master节点的配置已经完成了。
8. 配置节点服务器
- 拷贝master中的一些配置到节点服务器
1 |
scp /etc/yum.repos.d/CentOS-Base.repo docker-ce.repo kubernetes.repo 服务器ip:/etc/yum.repos.d/ |
- 配置镜像
1 |
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg |
- 安装docker
同上方第四步
1 |
yum install kubeadm-1.12.2-0.x86_64 docker-ce-18.06.0.ce kubelet-1.12.2-0.x86_64 |
- 启动docker和kubelet并设置开启启动
1 |
systemctl start docker |
- 加入集群管理
使用上方安装master结束后记住的命令加入到集群中
1 |
kubeadm join 172.26.15.165:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a |
- 验证
切换到master节点,再次使用以下命令查看节点数量是不是增加了一个呢
1 |
kubectl get nodes |
至此k8s集群就搭建完成了。

本文出自http://zhixiang.org.cn,转载请保留。
Kubernetes(k8s)1.12.2集群搭建的更多相关文章
- 基于Kubernetes v1.24.0的集群搭建(三)
1 使用kubeadm部署Kubernetes 如无特殊说明,以下操作可以在所有节点上进行. 1.1 首先我们需要配置一下阿里源 cat <<EOF > /etc/yum.repos ...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...
- 简单操作:10分钟实现在kubernetes(k8s)里面部署服务器集群并访问项目(docker三)
前言 经过docker安装.k8s开启并登录,我们终于到 "部署k8s服务器集群并访问项目" 这一步了,实现的过程中有太多坑,好在都填平了,普天同庆. 在进行当前课题之前,我们需要 ...
- K8s 上的分布式存储集群搭建(Rook/ceph)
转载自:https://mp.weixin.qq.com/s/CdLioTzU4oWI688lqYKXUQ 1 环境准备 1.1 基础环境 3台配置一致的虚拟机 虚拟机配置:4c 8g 虚拟机操作系统 ...
- 大数据平台CentOS7+CDH5.12.1集群搭建
1.CM(Cloudera Manager)介绍 1.1 简介 Cloudera Manager是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具,使得安装集群从几天的时间缩短在几个小 ...
- 基于Kubernetes v1.24.0的集群搭建(二)
上一篇文章主要是介绍了,每台虚拟机的环境配置.接下来我们开始有关K8S的相关部署. 另外补充一下上一篇文章中的K8S的changelog链接: https://github.com/kubernet ...
- 基于Kubernetes v1.24.0的集群搭建(一)
一.写在前面 K8S 1.24作为一个很重要的版本更新,它为我们提供了很多重要功能.该版本涉及46项增强功能:其中14项已升级为稳定版,15项进入beta阶段,13项则刚刚进入alpha阶段.此外,另 ...
- K8S之集群搭建
转自声明 ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建 1.K8S环境搭建的几种方式 搭建K8S环境有几种常见的方式如下: (1)Minikube Minikube是一 ...
- 使用Kubeadm搭建Kubernetes(1.12.2)集群
Kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,在2018年将进入GA状态,说明离生产环境中使用的距离越来 ...
随机推荐
- Shell常用快捷键
编辑命令 ctr+u 删除光标到行首(unix-line-discard) ctrl+k 删除此处至末尾(kill-line) ctr+e 光标移到末尾(end) ctr+a 光标移到行首(ahead ...
- PADS Layout VX.2.3 更改Logic符号,并更新到原理图
操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 统一使用A3尺寸的原理图,如果Logic符号画得太大,就会占用过多的面积.如下图所示,电阻的两只引脚的跨度占用了4 ...
- 2018年最新JAVA面试题总结之JavaWeb(2)
转自于:https://zhuanlan.zhihu.com/p/39522575 1.tomcat的优化方式?回答:Tomcat的优化我准备从三方面来说: 第一部分: 内存优化Tomcat的默认内存 ...
- Centos设置防火墙与开放访问端口
一. jeuxs在启动后可能会出现启动jexus成功,但是访问失败.但是在服务器内部访问没问题. 列出所有端口 netstat -ntlp 查看已经开放的端口: firewall-cmd --list ...
- 浅析布隆过滤器及实现demo
布隆过滤器 布隆过滤器(Bloom Filter)是一种概率空间高效的数据结构.它与hashmap非常相似,用于检索一个元素是否在一个集合中.它在检索元素是否存在时,能很好地取舍空间使用率与误报比例. ...
- JavaScript模块化CommonJS/AMD/CMD/UMD/ES6Module的区别
目录 JS-模块化进程 原始的开发方式 CommonJS && node.js AMD && Require.js CMD && Sea.js UMD ...
- 一种快速过VMP3.x调试器虚拟机检测的方法
VMP3.x 以上的版本的壳代码引入了一个标志位数值 Flags, 根据这个Flags值的位执行对应的事情. 比如: and 2 = 2 表示检测用户层调试器 and 4 = 4 表示检测内核调试器 ...
- DevExpress控件库 开发使用经验总结2 DevExpress汉化之WinForm开发模式汉化
2015-01-24 DevExpress控件库默认安装后,使用的本地资源为英文.Developer Express .NET产品都有本地化资源,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等 ...
- docker 安装 hbase安装 java连接hbase (mac环境)
docker 安装 https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载地址 下载完之后,安装app一样安装就好 安装完 ...
- redis对键进行的相关操作
redis对键操作的相关命令以及如何在python使用这些命令 redis对键操作的命令: 命令 语法 概述 返回值 Redis DEL 命令 del key [key ...] 该命令用于在 key ...