centos7安装kubernetes1.9集群

 节点规划

本次选用一个master节点,三个node节点来安装k8s集群。  

节点IP
M010.xx.xx.xx
N010.xx.xx.xx
N110.xx.xx.xx
N210.xx.xx.xx

集群启动前的准备(请用root用户执行)

节点准备工作(在每台机器上执行)

包括修改主机名,关闭防火墙等操作。  
k8s集群会识别主机名字,确保每个主机名设为不同值。  
关闭防火墙是为了避免不必要的网络问题。  

# ${hostname}变量请替换成规划的主机名,比如M0, N0, N1sudo hostnamectl set-hostname ${hostname}
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i -re '/^\s*SELINUX=/s/^/#/' -e '$i\\SELINUX=disabled'  /etc/selinux/config
  • 然后建立ssh的相互连接,方便后面传文件什么的。可以使用ssh-copy-id命令,也可以自己添加认证。这个网上教程很多,自己搜一下  

安装docker(在每台机器上执行)

yum install docker -y
systemctl enable docker && systemctl start docker

安装kubeadm, kubelet, kubectl(每台机器上执行)

  • kubeadm: 快速创建k8s集群的工具
  • kubelet: k8s的基础组件,负责对pod和container的创建和管理,与k8s集群master建立联系
  • kubectl: k8s的客户端工具,用来像集群发送命名
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOFyum install -y kubelet kubeadm kubectl

官网文档上写一些用户在RHEL/Centos7系统上安装时,由于iptables被绕过导致路由错误,需要在
sysctl的config文件中将net.bridge.bridge-nf-call-iptables设置为1.

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

启动kubelet:

systemctl enable kubelet && systemctl start kubelet

至此,准备工作就做好了。目前每隔几秒kubelet就会重启,直到收到kubeadm的命令。  
所以用systemctl status kubelet看到kubelet没有启动是正常现象,可以多执行几次查看,就会发现kubelet处于不断停止和重启的状态.


使用kubeadm工具创建kubernetes集群

kubeadm是k8s官方提供的工具,可以简单的创建一个安全可扩展的k8s集群。
在执行下面的操作之前,请确保前面的准备工作已经做完。特别是kubelet已经安装和启动,kubeadm已经安装完成

启动集群

  1. 启动master
    在master节点执行以下操作,并导出KUBECONFIG配置文件到环境变量:
    记录下kubeadm init的输出信息,后面将会用到

    # --pod-network-cidr=192.168.0.0/1参数是为了后面启动networ的Calico   pod做准备kubeadm init --pod-network-cidr=192.168.0.0/16
    export KUBECONFIG=/etc/kubernetes/admin.conf
  2. 安装启动一个network的pod,这里选用Calico.
    在启动任何pod之前,必须先启动一个network的pod, 用于pod之间的通信 

    kubectl apply -f https://docs.projectcalico.org/v2.6/getting-
    started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
  3. 添加node节点到master(在每台node上执行以下命令)
    当执行玩kubeadm init后会输出以下信息,直接复制执行就可以了  

    kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-
    hash sha256:<hash>

    至此为止k8s集群就建好了,可以在master节点输出kubectl get nodes查看

  4. 在非master节点管理集群(可选)  
    如果不执行这个操作,只能在master节点来管理集群。
    把master节点的admin.conf配置文件复制到nodes节点当中去,就能在node节点来管理集群了。

    scp /etc/kubernetes/admin.conf root@10.5.30.82:/etc/kubernetes/
    export KUBECONFIG=/etc/kubernetes/admin.conf
  5. 将API服务代理到localhost(可选)
    这个很好理解,执行 kubectl --kubeconfig proxy命令,也是要使用admin.conf的权限,直接复
    制官方文档:
    if you want to connect to the API Server from outside the cluster you can use
    kubectl proxy:

    scp root@<master ip>:/etc/kubernetes/admin.conf .
    kubectl --kubeconfig ./admin.conf proxy

    You can now access the API Server locally at http://localhost:8001/api/v1

删除集群

在我们安装k8s集群时,可能会出现问题,需要重新安装。  
在我们重新执行安装步骤之前,必须要先销毁我们建立好的k8s集群,在master节点下执行以下命令。  

# 先移除集群的node节点
kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node name># 然后重置kubeadm状态
kubeadm reset

我完全按照官方文档安装执行,没有遇到问题. 如果你在安装过程中遇到问题,请参考下面官方的故障排除文档和安装文档。   
故障排除:Troubleshooting Kubeadm
安装文档:Using kubeadm to create a cluster

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python图像分割算法_OpenCV-Python 图像分割与Watershed算法 | 三十四

目标 在本章中&#xff0c; 我们将学习使用分水岭算法实现基于标记的图像分割 我们将看到&#xff1a;cv.watershed() 理论 任何灰度图像都可以看作是一个地形表面&#xff0c;其中高强度表示山峰&#xff0c;低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局…

NEO从源码分析看共识协议

2019独角兽企业重金招聘Python工程师标准>>> 0x00 概论 不同于比特币使用的工作量证明&#xff08;PoW&#xff09;来实现共识&#xff0c;NEO提出了DBFT共识算法。DBFT改良自股权证明算法&#xff08;PoS&#xff09;&#xff0c;我没有具体分析过PoS的源码&#x…

怎样在linux系统上安装r,Linux系统之路——如何在CentOS7.2安装R(示例代码)

使用ubuntu的小伙伴们直接使用命令sudo apt-get installr-base-dev或者r-base搞定。然而对于使用centos的我却一直卡在安装这一步&#xff0c;十分的悲催&#xff0c;只有羡慕的份&#xff0c;但也不至于在linux上使用不上R。办法还是有的&#xff0c;自己总结出两种方法&#…

linux部署node web,nodejs怎么部署到Linux上?

nodejs怎么部署到Linux上&#xff1f;下面本篇文章就来给大家介绍一下在Linux上部署nodejs的方法&#xff0c;希望对大家有所帮助。nodejs部署到Linux上的方法如下&#xff1a;(建议先安装xshell和xftp)1、到nodejs官网下载压缩包(选择合适自己系统的版本)&#xff0c;放到Linu…

python树莓派 是什么_用树莓派和Python给你的植物浇水

我想指出&#xff0c;我绝不是电子学专家。如果你让我制作一个电路图或者解释某件电子产品工作原理的细节&#xff0c;我会一无所知。在生活中&#xff0c;我对电力的工作原理有了基本的了解&#xff0c;我只是胡乱摆弄了一下电子元件就完成了这个工程。话虽如此&#xff0c;当…

htmlspecialchars() 函数过滤XSS的问题

htmlspecialchars()函数的功能如下&#xff1a; htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是&#xff1a; & &#xff08;和号&#xff09;成为 &" &#xff08;双引号&#xff09;成为 " &#xff08;单引号&#xff09;成为 …

用mac的python写网络爬虫_在mac下使用python抓取数据

2015已经过去&#xff0c;这是2016的第一篇博文&#xff01; 祝大家新年快乐&#xff01; 但是我还有好多期末考试&#xff01; 还没开始复习&#xff0c;唉&#xff0c;一把辛酸泪&#xff01; 最近看了一遍彦祖的文章叫做 所以自己也想小试牛刀.于是便开始动手写,但初次接触,…

運輸配送信息Delivery_Information

为什么80%的码农都做不了架构师&#xff1f;>>> 運輸配送信息Delivery_Information 金銀倉會選用以下運輸公司&#xff0c;為客戶配送磁磚傢俬潔具&#xff1a; 佛山冠昌達中港運輸&#xff08;散貨或包車&#xff0c;近佛山石灣的磁磚倉庫&#xff0c;近樂從傢俬城…

Spring+SpringMVC+Mybatis 多数据源整合

原文地址&#xff1a;http://blog.csdn.net/q908555281/article/details/50316137 ----------------------------------- 此篇文章是基于Spring3.0和mybatis3.2的总体大概流程 &#xff1a;1. 拷贝所需jar 2.写一个数据库切换的工具类&#xff1a;DataSourceContextHolder&am…

查看mysql sql执行器优化后的sql

EXPLAIN EXTENDED select s.* from student s where s.sid in ( select sid from sc where sc.cid 0 and sc.score 100); show WARNINGS;

git ssh拉取代码_win10下git初始安装及配置工作

git安装从https://git-scm.com/https://git-scm.com/download/win 中下载安装包&#xff0c;点击exe文件运行&#xff0c;选择安装路径即可安装。git配置初次运行git前的配置&#xff0c;新建文件夹1、 新建一个文件夹&#xff0c;用来存放代码的文件夹---2、 打开文件夹&#…

联想m7400pro清零方法_联想打印机怎么清零 联想打印机清零方法【教程】

今天小编为读者挑选出了联想 打印机 部分机型的清零方式&#xff0c;希望阅读完这篇文章能帮助到各位。LJ3010A、LJ3116A、LJ3220A清零方式先点击控制面板上的“联机”按钮&#xff0c;让打印机处于脱机状态&#xff0c;再点击“执行”按钮进行打印。先点击控制面板上的“联机”…

c语言中数组名可以与其他变量名相同,C语言初学者入门讲座 第九讲 数组(1)...

C语言初学者入门讲座 第九讲 数组(1)(2007-01-17 11:39:19)数组在程序设计中&#xff0c;为了处理方便&#xff0c;把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中&#xff0c;数组属于构造数据类型。一个数组可以分解为…

pb通过对象名称调用对象_C++ 可调用对象(二)

点击上方“蓝字”&#xff0c;发现更多精彩。本文在前一篇关于函数对象、bind 函数的基础上&#xff0c;对 C 中 lambda不表达式的使用进行总结。lambda01PART定义一个 lambda 表达式表示一个可调用的代码单元&#xff0c;可以理解为是一个未命名的内敛函数。类似任何函数&…

交换机虚拟化和堆叠的区别_核心交换机和普通交换机有何区别?

提起核心交换机与普通交换机有什么区别&#xff1f;相信很多朋友都有点迷惑&#xff0c;今天我们一起来了解下。核心交换机并不是交换机的一种类型&#xff0c;而是放在核心层(网络主干部分)的交换机叫核心交换机。一般大型企业网络和网吧需要购买核心交换机来实现强大的网络扩…

tmpfiles.d导致的unix:///tmp/supervisor.sock no such file坑(待续)

为什么80%的码农都做不了架构师&#xff1f;>>> 系统环境: CentOS Linux release 7.1.1503 (Core) supervisor 3.3.1今天初七&#xff0c;刚放完假需要去supervisor restart下程序。发现报了这个错误。但是看supervisord的进程还在运行&#xff0c;项目代码也还在…

springMVC两种方式实现多文件上传及效率比较

springMVC实现多文件上传的方式有两种&#xff0c;一种是我们经常使用的以字节流的方式进行文件上传&#xff0c;另外一种是使用springMVC包装好的解析器进行上传。这两种方式对于实现多文件上传效率上却有着很大的差距&#xff0c;下面我们通过实例来看一下这两种方式的实现方…

c语言 个位,如何才能给C语言增加几个位操作函数

在汇编语言中有直接对位进行操作的指令&#xff0c;如置位、复位、位取反、测试某一位等&#xff0c;这对于硬件操作十分方便&#xff0c;在C语言中尽管也提供了一些位操作手段&#xff0c;如按位与、按位或、按位取反等&#xff0c;但它们是对一个字节进行操作&#xff0c;如要…

hsrp 切换_HSRP、VRRP、GLBP | 网络工程师之网关高可用、冗余

在RS的学习过程中我们接触到很多网络技术&#xff0c;后面就把工作中常用的拿来与大家分享&#xff0c;本次我们来分享网关冗余技术。当我们的网关设备无法使用堆叠(VSS,istack&#xff0c;IRF)&#xff0c;或者不同厂商设备的时候&#xff0c;非常有效&#xff0c;能够提供网关…

Linux文件系统详解

从操作系统的角度详解Linux文件系统层次、文件系统分类、文件系统的存储结构、不同存储介质的区别(RAM、ROM、Flash)、存储节点inode。本文参考&#xff1a; http://blog.chinaunix.net/uid-8698570-id-1763151.htmlhttp://www.iteye.com/topic/816268http://soft.chinabyte.co…