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 ...
随机推荐
- Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)
请访问原文链接:https://sysin.org/blog/linux-partition-expansion/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...
- flutter获取状态栏高度及安全区域
获取状态栏高度: final double statusBarHeight = MediaQuery.of(context).padding.top; 所谓安全区域,就是适配现在一些刘海屏之类的非常规 ...
- MVVMLight学习笔记(七)---Messenger使用
一.概述 Messenger中文解释为信使的意思,顾名思义,在MvvmLight中,它的主要作用是用于View和ViewModel.ViewModel和ViewModel之间的通信. 考虑以下场景: ...
- FFmpeg 播放 RTSP/Webcam 流
本文将介绍 FFmpeg 如何播放 RTSP/Webcam/File 流.流程如下: RTSP/Webcam/File > FFmpeg open and decode to BGR/YUV & ...
- SpringBoot博客开发之AOP日志处理
日志处理: 需求分析 日志处理需要记录的是: 请求的URL 访问者IP 调用的方法 传入的参数 返回的内容 上面的内容要求在控制台和日志中输出. 在学习这部分知识的时候,真的感觉收获很多,在之前Spr ...
- 利用元数据提高 SQLFlow 血缘分析结果准确率
利用元数据提高 SQLFlow 血缘分析结果准确率 一.SQLFlow--数据治理专家的一把利器 数据血缘属于数据治理中的一个概念,是在数据溯源的过程中找到相关数据之间的联系,它是一个逻辑概念.数据治 ...
- configparser读
#-*-coding:utf-8-*-__author__ = "logan.xu"import configparserconf = configparser.ConfigPar ...
- 基于Ubuntu18.04一站式部署(python-mysql-redis-nginx)
基于Ubuntu18.04一站式部署 Python3.6.8的安装 1. 安装依赖 ~$ sudo apt install openssl* zlib* 2. 安装python3.6.8(个人建议从官 ...
- python库--pandas--文本文件读取
.read_table() / read_csv() filepath_or_buffer 文件路径 sep='\t' 分隔符. 设置为N, 将尝试自动确定 delimiter=N sep的备 ...
- AWK的内置变量
ARGC: number (2) 在命令行提供的参数的个数,不包括命令awkARGIND: number (0) 当前文件中正在处理的 ARGV 数组的索引值. 文件的位置,从1开始计数.一个文件处在 ...