博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在linux通过kubeadm搭建kubernetes群集
阅读量:5908 次
发布时间:2019-06-19

本文共 3865 字,大约阅读时间需要 12 分钟。

kubeadm是一个命令行的工具,它简化了创建和管理kubernetes cluster的步骤。kubeadm利用Docker的功能进行快速的部署,支行kubernetes master和etcd服务器作为系统服务是以容器的方式呈现的。当触发kuberadm命令时,容器服务将会直接联系在kubernetes node上的Kubelet.kubadm也会检查每个组件是否健康。通过kubeadm设置步骤,你可以避免一连串的安装和配置命令。

一. 搭建群集之前以下条件需要满足:

1. 每个节点都有唯一的MAC地址和产品UUID:一些插件使用MAC 地址和产品UUID作为唯一的主机标识(比如,kube-dns),假如它们在群集中重复的话,kubeadm可能不会工作

//check MAC address of your NIC

$ ifconfig –a

//check the product UUID on your host

$ sudo cat /sys/class/dmi/id/product_uuid

2. 每个接点都有不同的主机名字:假如主机名称重复的话,kubernetes系统可能从多个主机收集日志或者状态,会被认为是一个。

3. Docker的安装

4. 有效的网络端口,要避免端口重复等情况。

Node role Ports System service
Master 6433 Kubernetes API server
10248/10250/10255 kubelet local healthz endpoint/Kubelet API/Heapster (read-only)
10251 kube-scheduleer
10252 kube-controller-manager
10249/10256 kube-proxy
2379/2380 etcd client/etcd server communication
Node 10250/10255 Kubelet API/Heapster(read-only)
30000-32767 Port range reserved for exposing container service to outside world

可以通过以下命令获取服务器目前侦听的端口:

// list every listening port

$ sudo netstat -tulpn | grep LISTEN

5. 网络工具包安装。 kubeadm要使用ethtool和etables两个软件,可以通过apt-get 或者yum去下载安装。

二. 搭建群集

1. 包的安装

(1)ubuntu

1)可以连通google时使用方法:

安装执行以下命令

xiodi@c720132:~$ sudo apt-get update && sudo apt-get install -y apt-transport-https

Hit:1 xenial InRelease
Get:2 xenial-security InRelease [107 kB]
Hit:3 xenial InRelease                        
Get:4 xenial-updates InRelease [109 kB]       
Get:5 xenial-backports InRelease [107 kB]
Get:6 xenial-updates/main amd64 Packages [796 kB]
Get:7 xenial-updates/main i386 Packages [727 kB]
Fetched 1,846 kB in 3s (519 kB/s)                       
Reading package lists... Done
Reading package lists... Done
Building dependency tree      
Reading state information... Done
apt-transport-https is already the newest version (1.2.26).
0 upgraded, 0 newly installed, 0 to remove and 77 not upgraded.

官网配置命令:

$ curl -s | sudo apt-key add -

OK

$ curl -s | sudo apt-key add -

OK

$ curl -s | sudo apt-key add -

OK

$ sudo bash -c 'echo "deb kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'

2)不能连通google时使用方法:

注意:以国内使用以上的镜像源时会报错,因为国内无法连通google。在国内使用以下方法进行替代。

1)从该地址下载gpg公钥

2)执行以下命令

$ cat kube_apt_key.gpg | sudo apt-key add -

3) 添加ustc镜像源

$ echo "deb [arch=amd64] https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-$(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list

如果是ubuntu16.04以上版本,建议执行如下:

echo "deb [arch=amd64] https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list

3)安装软件包

//on kubenetes master

$ sudo apt-get update

$ sudo apt-get install –y kubelet kubeadm kubectl

//on kubenetes slave

$sudo apt-get update

$sudo apt-get install kubelet kubelet

Centos上面的安装:

1)使用google镜像库安装方法

$ sudo vim /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
 

2)在国内使用阿里镜像方法:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

3)安装包

// on kubernetes master

$ sudo yum install –y kubelet kubeadm kubectl

// on kubernetes node

$ sudo yum install –y kubelet

2. 其它相关设置

1) 查看selinux状态

// check the state of SELinux, if it has already been disabled, bypass below commands

$ sestatus

2)如果selinux状态是enforcing的话,那么使用以下命令关闭。

// disable SELinux through command

$  sudo setenforce 0
// or modify the configuration file
$ sudo sed –I 's/ SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

3) 重新启动系统

$ sudo reboot

4) 启动服务

$ sudo systemctl enable kubelet && sudo systemctl start kubelet

5) kubeadm初始化

$ kubeadm init

转载于:https://www.cnblogs.com/zangxueyuan/p/9214118.html

你可能感兴趣的文章
一些最新的 iPhone APP 的 UI 设计实例
查看>>
NYOJ-42 一笔画问题
查看>>
svn 官方下载
查看>>
REVITMEP中风道末端连接到风管的方式
查看>>
BZOJ 2200 [Usaco2011 Jan]道路和航线
查看>>
那天有个小孩跟我说LINQ(三)
查看>>
MYSQL乱码
查看>>
C# 怎么显示中文格式的星期几
查看>>
LAMP php5.4编译 _php_image_stream_putc等问题
查看>>
vim自动缩进
查看>>
mysql远程访问,修改root密码
查看>>
计算图像大小
查看>>
SphinxSE 一些SQL查询语句
查看>>
利用libsvm-mat建立分类模型model参数解密[zz from faruto]
查看>>
range与xrange之间的差异(转)
查看>>
以构造函数和原型法重新实现定时器封装
查看>>
深入理解javascript原型和闭包(1)——一切都是对象
查看>>
在AD09中查找元件和封装
查看>>
在Eclipse中使用JUnit4进行单元測试(0基础篇)
查看>>
JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)
查看>>