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的更多相关文章

  1. kubeadm 搭建 K8s

    kubeadm 搭建 K8s 本篇主要记录一下 使用 kubeadm 搭建 k8s 详细过程 ,环境使用 VirtualBox 构建的3台虚拟机 1.环境准备 操作系统:Centos7 (CentOS ...

  2. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  3. CentOS7 使用 kubeadm 搭建 k8s 集群

    一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...

  4. kubeadm 搭建 K8S集群

    kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...

  5. 使用kubeadm搭建k8s集群

    1.初始化集群信息 这里我才用了两台虚拟机来搭建集群,一个master,一个node 角色 IP地址 组件 master 192.168.126.137 docker, kubectl, kubead ...

  6. 使用kubeadm搭建高可用k8s v1.16.3集群

    目录 1.部署环境说明 2.集群架构及部署准备工作 2.1.集群架构说明 2.2.修改hosts及hostname 2.3.其他准备 3.部署keepalived 3.1.安装 3.2.配置 3.3. ...

  7. centos7使用kubeadm搭建kubernetes集群

    一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2 ...

  8. 在Centos7.6使用kubeadm部署k8s 1.14.3

    K8s不是一个软件,而是一堆软件的集合,由于这堆软件各自独立,因此可能k8s安装过程很容易出现问题 K8s部署有多种方式,本文使用kubeadm部署,从易操作性和可控性来说属于中等的方式 环境:cen ...

  9. kubeadm安装k8s测试环境

    目标是搭建一个可测试的k8s环境,使用的工具 kubeadm, 最终一个master节点(非高可用),2个node节点. 环境以及版本 Centos7.3 kubeadm 1.11.1 kubelet ...

随机推荐

  1. sentinel使用(结合gateway)

    前 如果你想在Spring Cloud Gateway中使用Sentinel Starter,你需要添加Spring - Cloud -alibaba- Sentinel - Gateway依赖,并添 ...

  2. uwp 中的appservice

    在上篇里,我使用的是寄宿在WPF上的WCF进行两个程序间的通信,在解决问题的同时,我的同事也在思考能否使用UWP来做这件事.于是,我们发现了App Service,两个UWP应用沟通的桥梁. App ...

  3. LeetCoded第20题题解--有效的括号

    有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空 ...

  4. 【IDE】Sublime Text 3 使用配置

    1 安装 首先现在安装Sublime Text 3,直接官网下载(http://www.sublimetext.com/3),也可以在其他地方下载,安装完成后进行破解 菜单栏Help - Enter ...

  5. RabitMq过期时间TTL

    第一种:给消息设置过期时间 启动一个插件 @Bean public DirectExchange DirectExchange() { return new DirectExchange(" ...

  6. easycode一键生成

  7. windows下mysql5.7.17配置

    1.官网下载mysql5.7.17 64位 https://dev.mysql.com/downloads/mysql/ 2.安装完解压到E盘主目录下,改文件名为mysql 3.配置环境变量 我的电脑 ...

  8. 从零开始实现简单 RPC 框架 6:网络通信之 Netty

    网络通信的开发,就涉及到一些开发框架:Java NIO.Netty.Mina 等等. 理论上来说,类似于序列化器,可以为其定义一套统一的接口,让不同类型的框架实现,事实上,Dubbo 就是这么干的. ...

  9. C++模板使用

    C++模板 模板是一种对类型进行参数化的工具: 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 例如:Max函数 :求两个数的最大值,我们需要对各种数据类型进行重载,如下 in ...

  10. (6)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Boot项目详细搭建步骤

    ​ 在 Spring Tools 4 for Eclipse 中依次选择 File->New->Maven Project,然后在出现的界面中按图所示增加相关信息. ​ <paren ...