资讯专栏INFORMATION COLUMN

centos7安装kubernetes1.9集群

jerryloveemily / 890人阅读

摘要:先移除集群的节点然后重置状态我完全按照官方文档安装执行,没有遇到问题如果你在安装过程中遇到问题,请参考下面官方的故障排除文档和安装文档。

 节点规划

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

节点 IP
M0 10.xx.xx.xx
N0 10.xx.xx.xx
N1 10.xx.xx.xx
N2 10.xx.xx.xx

集群启动前的准备(请用root用户执行) 节点准备工作(在每台机器上执行)

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

# ${hostname}变量请替换成规划的主机名,比如M0, N0, N1

sudo hostnamectl set-hostname ${hostname}
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i -re "/^s*SELINUX=/s/^/#/" -e "$iSELINUX=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 < /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
EOF

yum install -y kubelet kubeadm kubectl

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

cat <  /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已经安装完成

启动集群

启动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

安装启动一个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

添加node节点到master(在每台node上执行以下命令)
当执行玩kubeadm init后会输出以下信息,直接复制执行就可以了  

kubeadm join --token  : --discovery-token-ca-cert-
hash sha256:

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

在非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

将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@:/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  --delete-local-data --force --ignore-daemonsets
kubectl delete node 

# 然后重置kubeadm状态
kubeadm reset

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/8016.html

相关文章

  • centos7安装kubernetes1.9集群

    摘要:先移除集群的节点然后重置状态我完全按照官方文档安装执行,没有遇到问题如果你在安装过程中遇到问题,请参考下面官方的故障排除文档和安装文档。  节点规划 本次选用一个master节点,三个node节点来安装k8s集群。   节点 IP M0 10.xx.xx.xx N0 10.xx.xx.xx N1 10.xx.xx.xx N2 10.xx.xx.xx 集群启...

    tinysun1234 评论0 收藏0
  • kubernetes1.9高可用集群安装(使用kubeadm工具)

    摘要:集群安装在节点上并准备一个虚拟来做。节点集群启动前的准备请用用户执行节点准备工作在每台机器上执行包括修改主机名,关闭防火墙等操作。关闭防火墙是为了避免不必要的网络问题。完了可以使用查看集群是否安装完成。 前面我们安装了一个简单的kubernetes集群,选用了1个master节点和三个node节点。etcd也没有安装成集群. 这次我们安装一个3个master节点+etcd集群的kub...

    codecraft 评论0 收藏0
  • kubernetes1.9高可用集群安装(使用kubeadm工具)

    摘要:集群安装在节点上并准备一个虚拟来做。节点集群启动前的准备请用用户执行节点准备工作在每台机器上执行包括修改主机名,关闭防火墙等操作。关闭防火墙是为了避免不必要的网络问题。完了可以使用查看集群是否安装完成。 前面我们安装了一个简单的kubernetes集群,选用了1个master节点和三个node节点。etcd也没有安装成集群. 这次我们安装一个3个master节点+etcd集群的kub...

    VioletJack 评论0 收藏0
  • kubernetes1.9.2基于kubeadm高可用安装教程,包含离线安装包,支持简单快速安装,含

    摘要:使用安装安全高可用集群安装包地址如非高可用安装请忽略此教程,直接看产品页的三步安装。 使用kubeadm安装安全高可用kubernetes集群 安装包地址 如非高可用安装请忽略此教程,直接看产品页的三步安装。 单个master流程: 单master视频教程 解压后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因为脚本用的相...

    explorer_ddf 评论0 收藏0
  • kubernetes1.9.2基于kubeadm高可用安装教程,包含离线安装包,支持简单快速安装,含

    摘要:使用安装安全高可用集群安装包地址如非高可用安装请忽略此教程,直接看产品页的三步安装。 使用kubeadm安装安全高可用kubernetes集群 安装包地址 如非高可用安装请忽略此教程,直接看产品页的三步安装。 单个master流程: 单master视频教程 解压后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因为脚本用的相...

    AlphaGooo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<