热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

01kubeadm安装高可用Kubernetes集群

1、环境规划1.1网段规划Pod网段:10.244.0.016Service网段:10.10.0.0161.2服务器规划操作系统:CentOS7.x内存:4GbCPU:4核CPU硬

1、环境规划


1.1 网段规划



  • Pod网段:10.244.0.0/16



  • Service网段:10.10.0.0/16




1.2 服务器规划



  • 操作系统:CentOS7.x

  • 内存:4Gb

  • CPU:4核CPU

  • 硬盘:100Gb

  • 虚拟化:开启











































Kubernetes集群角色IP主机名安装的组件
控制节点(Master节点)192.168.126.10k8s-master01.staryjie.comAPI Server
Controller-manager
Scheduler
kubelet
etcd
docker
kube-proxy
keepalived
nginx
calico
控制节点(Master节点)192.168.126.11k8s-master02.staryjie.comAPI Server
Controller-manager
Scheduler
kubelet
etcd
docker
kube-proxy
keepalived
nginx
calico
工作节点(Node节点)192.168.126.20k8s-node01.staryjie.comkubelet
kube-proxy
docker
calico
coredns
工作节点(Node节点)192.168.126.21k8s-node02.staryjie.comkubelet
kube-proxy
docker
calico
coredns
VIP192.168.126.8

2、初始化服务器


2.1 配置IP和主机名


2.1.1 服务器IP改成静态IP

静态IP可以保证服务器IP不会发生改变,保证环境不会发生改变。


一般云服务器都会有固定公网IP,如果是虚拟机等,可以通过配置静态IP来实现。

例:

kubeadm-config.yaml

tomcat.yaml:

tomcat-service.yaml:

metrics-server是一个集群范围内的资源数据集和工具,同样的,metrics-server也只是显示数据,并不提供数据存储服务,主要关注的是资源度量API的实现,比如CPU、文件描述符、内存、请求延时等指标,metrics-server收集数据给Kubernetes集群内使用,如kubectlhpascheduler等。

可以通过kubectl top等获取Kubernetes集群中资源信息等。



  • Kubernetes Metrics Server 是 Cluster 的核心监控数据的聚合器,kubeadm 默认是不部署的。

  • Metrics Server 供 Dashboard 等其他组件使用,是一个扩展的 APIServer,依赖于 API Aggregator。所以,在安装 Metrics Server 之前需要先在 kube-apiserver 中开启 API Aggregator。

  • Metrics API 只可以查询当前的度量数据,并不保存历史数据。

  • Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 下维护。

  • 必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 kubelet Summary API 获取数据。

GitHub地址:https://github.com/kubernetes-sigs/metrics-server

下载地址:https://github.com/kubernetes-sigs/metrics-server/releases


5.2 安装条件

注意:使用 Metrics Server 有必备两个条件:



  1. API Server 启用 Aggregator Routing 支持。否则 API Server 不识别请求:

    kube-system命名空间Pod资源使用情况:

    # 查看节点资源使用情况
    kubectl top nodes

    Kubernetes节点资源使用情况:


    6、修改schedulercontroller-managerkube-proxy监听地址

    默认schedulercontroller-manager组件监听端口是在127.0.0.1上的:

    后期如果提供Prometheus监控这些组件的时候,无法获取到127.0.0.1上的数据,所以我们需要将这些端口的监听地址修改为物理机的网卡IP上。


    6.1 修改scheduler组件的监听地址

    vim /etc/kubernetes/manifests/kube-scheduler.yaml

    需要将下图中四个部分进行修改:



    • - --bind-address=127.0.0.1修改为实际的主机IP

    • 删除- --port=0

    • livenessProbehttpGet中的host: 127.0.0.1修改为实际的主机IP

    • startupProbehttpGet中的host: 127.0.0.1修改为实际的主机IP

    修改后如下图所示:

    保存退出后,需要重启所有节点(所有master节点和worker节点)上的kubelet修改就会生效:

    systemctl restart kubelet.service

    修改后再次查看监听端口:


    6.2 修改controller-manager组件监听地址

    vim /etc/kubernetes/manifests/kube-controller-manager.yaml

    将下图中四个部分进行修改:



    • - --bind-address=127.0.0.1修改为实际的主机IP

    • 删除- --port=0

    • livenessProbehttpGet中的host: 127.0.0.1修改为实际的主机IP

    • startupProbehttpGet中的host: 127.0.0.1修改为实际的主机IP

    修改为下图所示:

    保存退出后,需要重启所有节点(所有master节点和worker节点)上的kubelet修改就会生效:

    systemctl restart kubelet.service

    修改后再次查看监听端口:


    6.3 修改Kube-proxy组件的监听地址

    kubectl edit configmaps -n kube-system kube-proxy

    将下图中对应的metricsBindAddress修改为0.0.0.0:10249

    修改之后的内容如下图所示:

    修改完成之后,保存退出,并且需要重启kube-proxy对应的Pod:

    kubectl get pods -n kube-system | grep kube-proxy |awk '{print $1}' | xargs kubectl delete pods -n kube-system

    重启完之后查看监听地址:


    6.4 检查

    netstat -lntp | grep :10249
    netstat -lntp | grep :10251
    netstat -lntp | grep :10252

    最终效果如下:


    7、重置节点

    # 重置主节点(k8s-master01)
    kubeadm reset
    rm -rf /root/.kube/
    rm -rf /etc/kubernetes/
    systemctl restart kubelet.service


推荐阅读
author-avatar
云鹤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有