centos7 kubeadm 搭建k8s
Centos 7 搭建 kubernetes 集群环境
一、介绍
本次是centos7 搭建kubernetes1.15.9
通过kubeadm 的形式搭建
二、准备
> centos 7 (镜像:centos-7-x86_64-minimal-1908.iso, 镜像下载地址:http://mirrors.ustc.edu.cn/)
> 虚拟机设置2核 4G内存
三、安装docker
下载软件源
# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
下载指定的docekr-ce的docker (低版本的docker 无法支持高版本的kubernetes)
# yum -y install docker-ce-18.09.1-3.el7
配置docker的daemon.json
# vim /etc/docker/daemon.json
{
"exec-opts":["native.cgroupdriver=systemd"],
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
开启docker 并设置开机自启动
# systemctl start docker & systemctl enable docker
四、安装kubectl kubeadm kubelet
准备kubernetes源
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
下载 kubeadm kubectl kubelet
# yum -y install kubeadm-1.15.9 kubectl-1.15.9 kubelet-1.15.9
五、安装kubernetes 前的准备工作
每一个主机都[必须]有不一样的主机名(下面是master,你也可以是node,名字一定要不一样)
# echo "master" > /etc/hostname
不同节点的ip 对应不用的名字,不硬性要求.名字不一样呀,好记就行.
# cat >> /etc/hosts <<EOF
192.168.0.113 k8s-master
192.168.0.114 k8s-node1
192.168.0.116 k8s-node2
EOF
关闭防火墙
# systemctl stop firewalld & systemctl disable firewalld
关闭分区swap
# swapoff -a
关闭selinux
# sed -i 's/enforcing/disabled/' /etc/selinux/config
# setenforce -0
将桥接的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
开启kubelet
systemctl start kubelet & systemctl enable kubelet
六、安装kubernetes
选择1.15.9 的版本,指定pod 网络ip的范围,api-server地址其他节点可ping通的ip地址,并使用国内的镜像(国外的下载不下来)
# kubeadm init --kubernetes-version 1.15.9 \
--pod-network-cidr 10.244.0.0/16 \
--apiserver-advertise-address 192.168.0.119 \
--image-repository registry.aliyuncs.com/google_containers
------------------------- 到这里没有报错的话基本上也就不错了--------------------
接下来应该有提示进行如下操作
# mkdir -p $HOME/.kube
# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件
# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# sed -i 's/quay.io\/coreos\/flannel/quay-mirror.qiniu.com\/coreos\/flannel/' kube-flannel.yml
# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
kubectl apply -f kube-flannel.yml
kubectl apply -f kube-flannel-rbac.yml
七、添加节点
每个主机都先下载好docker,kubectl,kubeadm,kubelet,也就是重复上面三、四、五的步骤(其他节点可以不用kubectl)
添加节点(这一步会在kubeadm init 完成后会有这个操作,记住就行,24小时失效,没记住可以再生成)
# kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
八、可能遇到的问题
8.1 cordons pod起不起来,通过kubectl describe pods/coredns-XXX -n kube-system 有报错
pods coredns : network: failed to find plugin "bridge" in path [/opt/cni/bin]]这个原因是网络插件没有dridge > 解决方式 一
# go get github.com/containernetworking/plugins
# cd $GOPATH/src/github.com/containernetworking/plugins
# ./build_linux.sh
# rm -rf /opt/cni/bin/*
# cp bin/* /opt/cni/bin > 解决方式二 (master 主机有的话)
# scp 命令复制到其他主机上 > 解决方式三
在kubeadm init 或者kubeadm join 前执行 rm -rf /opt/cni/bin/*8.2 其他节点使用kubectl 时
The connection to the server localhost:8080 was refused - did you specify the right host or port?解决
将master 节点的/etc/kubernetes/admin.conf复制到当前阶段下的 ~/.kube/conf 其实其他的节点可以不需要 kubectl
8.3 不允许运行在master 节点上部署
单节点创建deployment时报错default-scheduler 0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate解决:
# kubectl taint nodes --all node-role.kubernetes.io/master-
centos7 kubeadm 搭建k8s的更多相关文章
- kubeadm 搭建 K8s
kubeadm 搭建 K8s 本篇主要记录一下 使用 kubeadm 搭建 k8s 详细过程 ,环境使用 VirtualBox 构建的3台虚拟机 1.环境准备 操作系统:Centos7 (CentOS ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
- CentOS7 使用 kubeadm 搭建 k8s 集群
一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...
- kubeadm 搭建 K8S集群
kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...
- 使用kubeadm搭建k8s集群
1.初始化集群信息 这里我才用了两台虚拟机来搭建集群,一个master,一个node 角色 IP地址 组件 master 192.168.126.137 docker, kubectl, kubead ...
- 使用kubeadm搭建高可用k8s v1.16.3集群
目录 1.部署环境说明 2.集群架构及部署准备工作 2.1.集群架构说明 2.2.修改hosts及hostname 2.3.其他准备 3.部署keepalived 3.1.安装 3.2.配置 3.3. ...
- centos7使用kubeadm搭建kubernetes集群
一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2 ...
- 在Centos7.6使用kubeadm部署k8s 1.14.3
K8s不是一个软件,而是一堆软件的集合,由于这堆软件各自独立,因此可能k8s安装过程很容易出现问题 K8s部署有多种方式,本文使用kubeadm部署,从易操作性和可控性来说属于中等的方式 环境:cen ...
- kubeadm安装k8s测试环境
目标是搭建一个可测试的k8s环境,使用的工具 kubeadm, 最终一个master节点(非高可用),2个node节点. 环境以及版本 Centos7.3 kubeadm 1.11.1 kubelet ...
随机推荐
- sentinel使用(结合gateway)
前 如果你想在Spring Cloud Gateway中使用Sentinel Starter,你需要添加Spring - Cloud -alibaba- Sentinel - Gateway依赖,并添 ...
- uwp 中的appservice
在上篇里,我使用的是寄宿在WPF上的WCF进行两个程序间的通信,在解决问题的同时,我的同事也在思考能否使用UWP来做这件事.于是,我们发现了App Service,两个UWP应用沟通的桥梁. App ...
- LeetCoded第20题题解--有效的括号
有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空 ...
- 【IDE】Sublime Text 3 使用配置
1 安装 首先现在安装Sublime Text 3,直接官网下载(http://www.sublimetext.com/3),也可以在其他地方下载,安装完成后进行破解 菜单栏Help - Enter ...
- RabitMq过期时间TTL
第一种:给消息设置过期时间 启动一个插件 @Bean public DirectExchange DirectExchange() { return new DirectExchange(" ...
- easycode一键生成
- windows下mysql5.7.17配置
1.官网下载mysql5.7.17 64位 https://dev.mysql.com/downloads/mysql/ 2.安装完解压到E盘主目录下,改文件名为mysql 3.配置环境变量 我的电脑 ...
- 从零开始实现简单 RPC 框架 6:网络通信之 Netty
网络通信的开发,就涉及到一些开发框架:Java NIO.Netty.Mina 等等. 理论上来说,类似于序列化器,可以为其定义一套统一的接口,让不同类型的框架实现,事实上,Dubbo 就是这么干的. ...
- C++模板使用
C++模板 模板是一种对类型进行参数化的工具: 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 例如:Max函数 :求两个数的最大值,我们需要对各种数据类型进行重载,如下 in ...
- (6)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Boot项目详细搭建步骤
在 Spring Tools 4 for Eclipse 中依次选择 File->New->Maven Project,然后在出现的界面中按图所示增加相关信息. <paren ...