本地搭建3节点kubernetes
kubernetes本地搭建版本选择
- CentOS Linux release 7.7.1908
 - kubernetesVersion: v1.17.0
 - weave-kube:2.6.0
 - ceph/ceph:v14.2.6
 
CentOS 环境准备
3台机器环境检查
master内存至少4GiB
禁用swap分区 master
sudo swapoff -a
- 永久禁用
 
sudo vi /etc/fstab
把/dev/mapper/centos-swap swap这行注释掉
- sysctl 配置
 
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sysctl --system
- key免密
 
参见网络其他文章
- hostname
 
hostnamectl set-hostname xx
- hostname及ip映射
 
cat >> /etc/hosts <<EOF
172.16.225.129 k8s-02
172.16.225.130 k8s-03
172.16.225.200 k8s-01
EOF
yum源及安装
- 配置kubernetes yum源
 
# k8s yum源
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
enable=1
EOF
>>
- 配置docker yum源
 
cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum repolist
- 安装docker, kubeadm, kubelet and kubectl
 
yum install -y docker-ce kubeadm kubelet kubectl
- 检查docker及kubelet
 
systemctl enable --now docker && systemctl enable --now kubelet
- 检查日志
 
systemctl status kubelet
journalctl -xeu kubelet
kubernetes环境搭建
安装k8s master
安装master,法一:
查询列表
kubeadm config images list安装master,法二:
- 生成kubaeadm.yaml
 
kubeadm config print init-defaults > kubeadm.yaml
- 使用kubeadm.yaml 文件(1.15.X版本)
 
cat <<EOF > kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
nodeRegistration: # 去掉master污点
  taints:
  - effect: PreferNoSchedule
    key: node-role.kubernetes.io/master
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
imageRepository: registry.aliyuncs.com/google_containers # images地址
kubernetesVersion: v1.17.0 # version
EOF
- 初始化集群
kubeadm init --config kubeadm.yaml | tee kubeadmin.log 
- 再次创建tocken(选)
token expired
kubeadm token create --print-join-command 
return a token
kubeadm join 172.17.55.202:6443 --token 4xv6eq.5kygve4g6uy1smat \     --discovery-token-ca-cert-hash sha256:3ab287132d40f511925d0e416a6a0bd1fba47697c447b6c05f421b12029b8766
To start using your cluster, you need to run the following as a regular user:
- 卸载方法 (选)
 
kubeadm reset
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
rm -rf $HOME/.kube/config
systemctl stop docker
systemctl stop kubelet
yum remove kubelet
iptables -tnat --flush # iptables 一定要刷新
- 调整master服务器环境
 
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
初始化网络插件
- weave:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" 
启动worker节点
系统设置
配置k8s,docker yum源
下载docker kubelet kubeadm
通过tocken加入集群。 注意tocken的有效期为24小时
补充其他插件
添加dashboard
修改nodePort
kubectl patch svc -n kube-system kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}'
- 创建dashboard管理用户
 
kubectl create serviceaccount dashboard-admin -n kube-system
- 绑定用户为集群管理用户
 
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
- 获取tocken
 
kubectl describe secret -n kube-system dashboard-admin
添加存储
- rook: https://github.com/rook/rook/blob/master/Documentation/ceph-quickstart.md#deploy-the-rook-operator
 
查看安装
kubectl get pods -n rook-ceph-system
kubectl get pods -n rook-ceph
搭建过程中问题
# coredns readiness 一直unhealthy
coredns dial tcp 10.96.0.1:443: connect: no route to host
# 问题
iptables混乱导致
# 解决办法
systemctl stop kubelet
systemctl stop docker
iptables --flush
iptables -tnat --flush
systemctl start kubelet
systemctl start docker
kubectl delete pod weave -n kube-system
												
											本地搭建3节点kubernetes的更多相关文章
- Kubernetes 概述和搭建(多节点)
		
一.Kubernetes整体概述和架构 Kubernetes是什么 Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务.通过Kubernetes能够进行应用的自动化部署和扩缩 ...
 - 使用Minikube运行一个本地单节点Kubernetes集群(阿里云)
		
使用Minikube运行一个本地单节点Kubernetes集群中使用谷歌官方镜像由于某些原因导致镜像拉取失败以及很多人并没有代理无法开展相关实验. 因此本文使用阿里云提供的修改版Minikube创建一 ...
 - 爬虫管理平台以及wordpress本地搭建
		
爬虫管理平台以及wordpress本地搭建 学习目标: 各爬虫管理平台了解 scrapydweb gerapy crawlab 各爬虫管理平台的本地搭建 Windows下的wordpress搭建 爬虫 ...
 - 简单三分钟,本地搭建 k8s
		
使用 minikube 在本地搭建 k8s 已经比以前要简单很多了.本文,我们通过简短的三分钟来重现一下在本地搭建 k8s 实验环境的步骤. Newbe.Claptrap 是一个用于轻松应对并发问题的 ...
 - 超快速使用docker在本地搭建hadoop分布式集群
		
超快速使用docker在本地搭建hadoop分布式集群 超快速使用docker在本地搭建hadoop分布式集群 学习hadoop集群环境搭建是hadoop入门的必经之路.搭建分布式集群通常有两个办法: ...
 - 使用Docker在本地搭建Hadoop分布式集群
		
学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟 ...
 - Hadoop生态圈-zookeeper本地搭建以及常用命令介绍
		
Hadoop生态圈-zookeeper本地搭建以及常用命令介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zookeeper软件 下载地址:https://www.ap ...
 - centos搭建单节点hadoop
		
由于本地机器资源有限,搭建单节点hadoop供开发.测试. 1.安装java mkdir /usr/local/java cd /usr/local/java tar zxvf jdk-8u181-l ...
 - 基于Docker快速搭建多节点Hadoop集群--已验证
		
Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...
 
随机推荐
- jsp与spring mvc后台controller间参数传递处理之总结
			
在编程过程中,最容易出现问题及卡壳的地方,往往是各层之间接缝处,接缝处往往存在着各种各样的参数传递,数据转换和格式化,参数很好的传递并正确接收过来之后就是复杂逻辑之间的处理了,所以为了避免多种问题占用 ...
 - R函数
			
1. sd() 求一组数据的标准差 > x = rep(1,15) > x [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > sd(x) [1] 0 2.var ...
 - Ajax学习系列——Ajax介绍及优缺点
			
一.什么是Ajax Ajax即“Asynchronous JavaScript And XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. Ajax = 异步Jav ...
 - opencv人脸检测
			
找了一张自己喜欢的<超人前传>剧照 其中的xml分类器需要到https://github.com/opencv/opencv/tree/master/data/haarcascades去下 ...
 - Java交换数据为何不起作用原因分析
			
一.概述 目前各类语言中向函数传递参数的类型分为三种: 按值传递 按引用传递 按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值:按引用传递表示方法(函数)接收的调 ...
 - Python MySQL 入门
			
章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...
 - 大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群
			
下载Hadoop安装包 登录 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像站,找到我们要安装的版本,点击进去复制下载链接 ...
 - 数据库连接池DBCP的使用
			
一.直接使用代码链接(一般企业开发不用这种方式) 1.导入JAR 把jar包拷贝到lib文件夹里面然后右击 build path一下 2.建一个jdbc.proprtties文件 driverClas ...
 - 二、CI框架之MCV模型
			
一.关于MCV,大概就是下图所示: 模型(model)-视图(view)-控制器(controller) M用来处理数据库,V用来显示界面,C用来控制 二.对应到CI的源码,对应的是这3个目录 不忘初 ...
 - 支持 UTF-8 中文的串口调试工具
			
最近使用 mdk526,编辑设置使用 utf-8,编辑窗口中文正常,但是编译的时候提示 warning: #870-D: invalid multibyte character sequence,解决 ...