准备阶段

master1  master2  master3 node1

关闭selinux,firewall

setenforce  0

sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

systemctl stop firewalld

systemctl disable firewalld

关闭swap,(1.8版本后的要求,目的应该是不想让swap干扰pod可使用的内存limit)

swapoff -a

sed -ri 's/.*swap.*/#&/' /etc/fstab

修改下面内核参数,否则请求数据经过iptables的路由可能有问题

cat <<EOF >  /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sysctl --system

安装kubeadm、docker

将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

EOF

安装docker-ce

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce

安装kubelet kubeadm kubectl

yum install kubeadm-1.15.0-0.x86_64 kubectl-1.15.0-0.x86_64 kubelet-1.15.0-0.x86_64 -y

kubectl命令自动补全

yum install bash-completion* -y

##写入环境变量

source <(kubectl completion bash)

echo "source <(kubectl completion bash)" >> ~/.bashrc

安装keepalived,配置虚拟IP为192.168.81.100

启动kubelet,docker并设置开机启动

部署Kubernetes

在master-1节点操作:

准备集群配置文件,目前用的api版本为v1beta1,具体配置可以参考官方reference

cat << EOF > /root/kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta1

kind: ClusterConfiguration

kubernetesVersion: v1.15.0 # 指定1.15版本

controlPlaneEndpoint: 192.168.81.10:6443 # haproxy地址及端口

imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers # 指定镜像源为阿里源

networking:

podSubnet: 10.244.0.0/16 # 计划使用flannel网络插件,指定pod网段及掩码

EOF

执行节点初始化

systemctl enable kubelet

systemctl start kubelet

kubeadm config images pull --config kubeadm-config.yaml  # 通过阿里源预先拉镜像

kubeadm init --config=kubeadm-config.yaml --upload-certs --ignore-preflight-errors=all

kubeadm init  --kubernetes-version=v1.15.0 --pod-network-cidr=10.244.0.0/16  --service-cidr=10.96.0.0/12 --ignore-preflight-errors=all --upload-certs

安装成功,可以看到输出

You can now join any number of the control-plane node running the following command on each as root:

# master节点用以下命令加入集群:

kubeadm join 192.168.81.100:6443 --token ocb5tz.pv252zn76rl4l3f6 \

--discovery-token-ca-cert-hash sha256:141bbeb79bf58d81d551f33ace207c7b19bee1cfd7790112ce26a6a300eee5a2 \

--experimental-control-plane --certificate-key 20366c9cdbfdc1435a6f6d616d988d027f2785e34e2df9383f784cf61bab9826 --ignore-preflight-errors=all

# 工作节点用以下命令加入集群:

kubeadm join 192.168.81.100:6443 --token ocb5tz.pv252zn76rl4l3f6 \

--discovery-token-ca-cert-hash sha256:141bbeb79bf58d81d551f33ace207c7b19bee1cfd7790112ce26a6a300eee5a2 --ignore-preflight-errors=all

原来的kubeadm版本,join命令只用于工作节点的加入,而新版本加入了 --control-plane 参数后,控制平面(master)节点也可以通过kubeadm join命令加入集群了。

添加kubectl控制权限

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

加入另外一个master节点

在master-2操作:

kubeadm join 192.168.81.100:6443 --token ocb5tz.pv252zn76rl4l3f6 \

--discovery-token-ca-cert-hash sha256:141bbeb79bf58d81d551f33ace207c7b19bee1cfd7790112ce26a6a300eee5a2 \

--experimental-control-plane --certificate-key 20366c9cdbfdc1435a6f6d616d988d027f2785e34e2df9383f784cf61bab9826

--ignore-preflight-errors=all

添加kubectl控制权限

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

notready状态

编辑 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf文件(有的是/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf文件),
​ 删除最后一行里的$KUBELET_NETWORK_ARGS

systemctl restart kubelet

安装网络插件

kubectl apply –f kube-flannel.yml

再次查看节点状态

kubectl get nodes

参考:

kube-flannel网络插件:https://www.wanghaiqing.com/article/aa3ac027-7ae8-43ff-821e-49f6dfcd17e8/

kubeadm高可用:https://segmentfault.com/a/1190000018741112?utm_source=tag-newest

notready参照:https://www.cnblogs.com/zhongyuanzhao000/p/11401031.html

kubeadm部署高可用master的更多相关文章

  1. kubernetes kubeadm部署高可用集群

    k8s kubeadm部署高可用集群 kubeadm是官方推出的部署工具,旨在降低kubernetes使用门槛与提高集群部署的便捷性. 同时越来越多的官方文档,围绕kubernetes容器化部署为环境 ...

  2. 附012.Kubeadm部署高可用Kubernetes

    一 kubeadm介绍 1.1 概述 参考<附003.Kubeadm部署Kubernetes>. 1.2 kubeadm功能 参考<附003.Kubeadm部署Kubernetes& ...

  3. kubeadm部署高可用集群Kubernetes 1.14.1版本

    Kubernetes高可用集群部署 部署架构: Master 组件: kube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象 ...

  4. kubeadm部署高可用K8S集群(v1.14.2)

    1. 简介 测试环境Kubernetes 1.14.2版本高可用搭建文档,搭建方式为kubeadm 2. 服务器版本和架构信息 系统版本:CentOS Linux release 7.6.1810 ( ...

  5. kubeadm部署高可用版Kubernetes1.21[更新]

    环境规划 主机名 IP地址 说明 k8s-master01 ~ 03 192.168.3.81 ~ 83 master节点 * 3 k8s-master-lb 192.168.3.200 keepal ...

  6. Kubeadm部署高可用K8S集群

    一 基础环境 1.1 资源 节点名称 ip地址 VIP 192.168.12.150 master01 192.168.12.48 master02 192.168.12.242 master03 1 ...

  7. 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...

  8. kubernetes实战(二十五):kubeadm 安装 高可用 k8s v1.13.x

    1.系统环境 使用kubeadm安装高可用k8s v.13.x较为简单,相比以往的版本省去了很多步骤. kubeadm安装高可用k8s v.11 和 v1.12 点我 主机信息 主机名 IP地址 说明 ...

  9. 容器云平台No.2~kubeadm创建高可用集群v1.19.1

    通过kubernetes构建容器云平台第二篇,最近刚好官方发布了V1.19.0,本文就以最新版来介绍通过kubeadm安装高可用的kubernetes集群. 市面上安装k8s的工具很多,但是用于学习的 ...

  10. 基于kubeasz部署高可用k8s集群

    在部署高可用k8s之前,我们先来说一说单master架构和多master架构,以及多master架构中各组件工作逻辑 k8s单master架构 提示:这种单master节点的架构,通常只用于测试环境, ...

随机推荐

  1. 安川Yaskawa机器人DX100示教器维修的方法

    安川Yaskawa机器人DX100示教器维修的优劣势分析 安川Yaskawa机器人示教编程,工业机器人维修,即操作人员经过安川机器人示教器,ABB机器人保养,手动操控机器人的关节运动,以使机器人运动到 ...

  2. ollama-deepseek 部署

    选择云资源 选用智星云 4090 高性能 1.57 一小时 windows操作系统 可以修改带宽来增加下载速度 使用mstsc远程登录 使用ollama https://ollama.com/ oll ...

  3. sprintf用法详解

    sprintf 将字串格式化. 在头文件 #include< stdio.h >中 语法: int sprintf(string format, mixed [args]...); 返回值 ...

  4. Processing模拟控制多台舵机-以距离为参数 程序参考

    又是一次课程学习的结束,辅导学生的过程也很受益,温故而知新.该组同学需要Arduino控制多达6个舵机,而且基于距离这一参数,在不同距离值之间会有不同的触发事件,也就是6个舵机转的角度都有所不同,而且 ...

  5. 一个简单的PHP单文件路由类示例

    <?php class Router { protected $routes = array(); protected $basePath; public function __construc ...

  6. composer 2 升级操作

    update composer composer self-update // or sudo composer self-update 回滚到版本1 composer self-update --r ...

  7. 写于vue3.0发布前夕的helloworld之四

    OK.接上回到render: with(this){return _c('div',{attrs:{"id":"app"}},[_v(_s(msg))])} 接 ...

  8. Golang 入门 : 语言环境安装

    下载介绍 在go的官方网址上下载go最新版本https://golang.google.cn/dl/,或者在 Go 的中文网上下载https://studygolang.com/dl,两个网站打开的内 ...

  9. Cython二进制逆向系列(三)运算符

    Cython二进制逆向系列(三)运算符 在开始前,先给出本文用到的py源代码 def test1(x, y): # 数学运算符 a = x + y b = x - y c = x * y d = x ...

  10. git clone加速

    使用github的镜像网站进行访问,github.com.cnpmjs.org,我们将原本的网站中的github.com 进行替换.