k8s master ping不通node_搭建k8s可用集群
k8s诞生于2014年,google出品,如今已经是0202年了,站在岸上学不会游泳,还不搭建个k8s集群来玩玩吗?
机器准备
- 三台位于国外的服务器
(1)k8s的相关组件官方镜像在国外,国外的服务器能防止下载的时候被block。国内的服务器可以考虑国内的
镜像,网上有相关教程。
(2)一台作为集群的master,另外两台作为node。
(3)用作master的机器cpu核数>=2核,这是k8s对硬件上的硬性规定。
(4)服务器的操作系统这里使用的是ubuntu 16.04 x64版本,其它系统未实验过。
软件版本
- ubuntu 16.04 x64
- docker 18.09.7
- k8s 1.17.3
(1)docker和k8s组件的版本都是安装时默认安装的版本。
前期工作
- 关闭swap内存
非必选操作。关闭swap是k8s出于性能上的考虑。
(1)修改下面文件
vi /etc/fstab
(2)使用#号注释掉文件内容第二行,注释后如下
UUID=e2048966-750b-4795-a9a2-7b477d6681bf / ext4 errors=remount-ro 0 1
# /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
(3)reboot命令重启服务器
(4)top命令查看是否生效
- 修改主机名字
非必选操作。给主机起个利于分辨的名字,后面使用起来方便。
(1)将master机器的host修改为k8s-master,node的机器host名字修改为k8s-node1和k8s-node2。
hostnamectl set-hostname host-name
(2)执行下面指令使生效
/bin/bash
正式搭建k8s集群
- 安装docker(master,node上操作)
(1)执行下面命令
apt-get update && apt-get install docker.io
(2)安装完成后,可以通过下面命令查看docker信息
docker info
- 安装k8s的三个必备组件(master,node上操作)
(1)分别执行下面命令
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
(2)分别通过执行kubelet kubeadm kubectl可以验证是否安装成功
- 修改kubelet或者docker使用的cgroup驱动(master,node上操作)
docker默认使用的是cgroup驱动是cgroupfs,而k8s使用的systemd。虽然k8s推荐使用的是systemd,但是貌似网上说有坑,所以这里我选择修改k8s为cgroupfs驱动。
(1)修改/etc/systemd/system/kubelet.service.d/10-kubeadm.conf的文件
vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf(2)在文件中添加增加--cgroup-driver=cgroupfs参数,找到下面那行,末尾添加即可
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --cgroup-driver=cgroupfs"(3)重启kubelet
systemctl daemon-reload
systemctl restart kubelet
- 用kubeadm组件初始化cluster(master上操作)
(1)执行下面命令,xxxxxxxxx部分为master机器的固定ip,用来和node机器通信用。集群的组网我选择flannel方式,所以后面固定是--pod-network-cidr=10.244.0.0/16。
kubeadm init --apiserver-advertise-address xxxxxxxxx --pod-network-cidr=10.244.0.0/16
(2)上面命令执行完后会出现一串信息,找到类似下面的信息并保存,后面注册node到master使用。
kubeadm join xxxxxxxx:6443 --token xihr3k.9ivh8jm1c5zysyg3 --discovery-token-ca-cert-hash sha256:ab1590a3ee63c72d9f57f44caf9a459a97fad6f6d31966738e494a1824c74e64
- master机器上创建普通用户(master操作)
这个是为了下一步配置kubectl使用。
(1)创建用户,指定/bin/bash作为默认shell
useradd -r -m -s /bin/bash xxx
(2)设置密码
passwd xxx
(3)添加sudo权限
usermod -G sudo usernametips:
(1)切换为root用户命令
su
(2)切换为某个普通用户命令
su username
- 配置kubectl(master操作)
(1)切换到上一步创建的普通用户
su username
(2)执行下面命令
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
(3)添加kubectl提示功能
sudo echo "source <(kubectl completion bash)" >> ~/.bashrc
- 安装pod网络(master操作)
(1)之心部署flannel网络的命令
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 注册node到master(node操作)
(1)找到kubeadm初始化master时保存的命令,分别在node上执行
kubeadm join xxxxxxxx:6443 --token xihr3k.9ivh8jm1c5zysyg3 --discovery-token-ca-cert-hash sha256:ab1590a3ee63c72d9f57f44caf9a459a97fad6f6d31966738e494a1824c74e64
- 查看集群的所有机器(master操作)
(1)使用之前创建的普通用户执行下面指令,看到有三台机器,说明成功了!!!
kubectl get nodes
小结
如果你成功搭建了k8s集群,恭喜你,可以愉快的玩耍了!
如果你还在继续折腾,在解决搭建过程遇到的问题,别灰心,just one more try!
从本文
(1)在搭建的过程中,发现修改了不少配置文件,实际使用的时候最好有backup思想,有backup,没在怕。
reference:
(1)https://kubernetes.io/
(2)《每天5分钟玩转kubernetes》
各位看官如果觉得本文对你有帮助,不妨点个赞和关注!!!
k8s master ping不通node_搭建k8s可用集群相关推荐
- k8s高可用集群_搭建高可用集群(初始化和部署keepalived)---K8S_Google工作笔记0055
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来部署keepalived,搭建高可用集群. 然后我们这里需要master,155, ma ...
- k8s高可用集群_搭建高可用集群(实现方式介绍)---K8S_Google工作笔记0054
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来说搭建高可用集群,为什么要搭建高可用集群. 因为,首先我们说master节点是用来管理其 ...
- 12. 搭建高可用集群
文章目录 12.1 Keepalived+Nginx 高可用集群(主从模式) 12.1.1 集群架构图 12.1.2 具体搭建步骤 12.1.2.1 搭建高可用集群基础环境 12.1.2.2 完成高可 ...
- 用Keepalived搭建高可用集群
一.集群介绍 1.根据功能划分为两大类:高可用和负载均衡 2.高可用:一台工作,另一台冗余,当一台服务器故障宕机时,另一台服务器提供服务.开源软件有heartbeat,keepalived. 3.负载 ...
- 【Nginx那些事】nginx配置实例(四)搭建高可用集群
[Nginx那些事]nginx配置实例(四)搭建高可用集群 nginx 实现高可用 安装keepalived keepalived配置 主Nginx服务器配置 从nginx服务器配置 脚本文件权限设置 ...
- Kafka基于Zookeeper搭建高可用集群实战
Kafka基于Zookeeper搭建高可用集群实战 1 前言 1.1 高可用的由来 为何需要Replication? 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Bro ...
- 在 Kubernetes 中, 搭建高可用集群
永久地址:在 Kubernetes 中, 搭建高可用集群(保存网址不迷路
- 【kubernetes】k8s使用客户端连接haproxy访问高可用集群流程详细说明【使用kubeconfig连接haproxy】【kubeconfig配置全部流程】
文章目录 master高可用部署流程 客户端连接haproxy访问高可用集群 环境确认与准备[必看] 客户端连接happroxy说明 kubeconfig配置[master上操作] 客户端测试 说明 ...
- 16、Kubernetes搭建高可用集群
文章目录 前言 一.高可用集群 1.1 高可用集群技术细节 二.部署高可用集群 2.1 准备环境 2.2 所有master节点部署keepalived 2.2.1 安装相关包和keepalived 2 ...
最新文章
- Directx教程(24) 简单的光照模型(3)
- yum提示Error: rpmdb open failed
- view controller lifecycle discussion - onInit
- 可行的DeltaSpike教程
- python数据算法有哪些_python算法与数据结构-常用查找算法一(37)
- OpenShift 4 之Kafka(2)-配置Kafka Bridge,通过HTTP访问Kafka Topic
- MyBatis分页插件PageHelper
- FragmentTransactionExtended
- 图片放大后失真不清晰,怎么办?
- “DOTA“巨魔战将连续晕眩的概率
- OMAP850 运行android
- 服务器白屏是系统在更新吗,远程服务器白屏怎么处理
- Python制作某电商平台商品竞拍脚本,能自动定时、抢拍、购买!吊不吊?
- python画素描画
- UTools工具下载网址
- oc中写c语言的方法,OC语言description步骤和sel
- 卧听夏蝉---app_trace和xmlhttp.responseText的关系
- 汇编语言---大小写字母转换
- Amazon数据集网址
- USDP使用笔记(三)大数据集群及组件启停