• 使用kubeadm快速部署一个K8s集群


    目录

    1.搭建k8s环境平台规划

    2.服务器硬件配置要求

    测试环境

    3.搭建k8s集群部署方式

    1. 安装要求

    2. 准备环境

    3. 所有节点安装Docker/kubeadm/kubelet

    4. 部署Kubernetes Master

    5. 加入Kubernetes Node

    6. 部署CNI网络插件

    7. 测试kubernetes集群


    使用kubeamd方式搭建k8s集群

    1,安装三台虚拟机,安装操作系统centos7.x

    2,对三个安装之后操作系统进行初始化操作

    3,在三个节点上安装docker  kubelet  kubeadm kubect1

    4,在master节点执行kubeadm init命令进行初始化

    5,在node节点上执行kubeadm join命令把node节点添加到当前集群

    6,配置网络

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具

    这个工具能通过两条指令完成一个kubernetes集群的部署:

    1. # 创建一个 Master 节点
    2. $ kubeadm init
    3. # 将一个 Node 节点加入到当前集群中
    4. $ kubeadm join

    1.搭建k8s环境平台规划

    单master集群  缺点:单点故障

    多master集群  要考虑负载均衡

    2.服务器硬件配置要求

    测试环境

    master 2核  4G  20G

    node     4核  8G  40G

    3.搭建k8s集群部署方式

    生产部署k8s集群我选择kubeadm

    Kubeadm是一个k8s部署工具,提供kubeadm init和kubeadm join用于快速部署K8s

    kubeadm是官方社区推出的一个用于快速部署k8s集群的工具,这个工具能通过量调整指令完成一个k8s集群的部署

    第一。创建一个master节点  kubeadm init

    第二。将node节点加入到当前集群中   kubeadm join 《master节点的ip和端口》

    1,安装VM软件

    2,通过VM软件来创建一个虚拟机空间

    3,通过VM软件在创建好的虚拟机空间上,安装我们的centOS操作系统

    4.使用CentOS

    1. 安装要求

    在开始之前,部署 Kubernetes 集群机器需要满足以下几个条件:
    一台或多台机器,操作系统 CentOS7.x-86_x64
    硬件配置: 2GB 或更多 RAM 2 CPU 或更多 CPU ,硬盘 30GB 或更多
    可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
    禁止 swap 分区

    2. 准备环境

    在VM软件上创建三个Centos,可以配置一个再克隆

    角色IP
    master1192.168.133.133
    node1192.168.133.136
    node2192.168.133.137

    通过命令ifconfig查看各个节点的IP,注意是ess:在inet后面的是你的IP

    注意除了在master添加node节点,其他代码也要在node节点上执行,并且注意ip地址对不对

    1. # 关闭防火墙
    2. systemctl stop firewalld
    3. systemctl disable firewalld
    4. # 关闭selinux
    5. sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
    6. setenforce 0 # 临时
    7. # 关闭swap
    8. swapoff -a # 临时
    9. sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
    10. # 根据规划设置主机名
    11. hostnamectl set-hostname <hostname>
    12. # 在master添加hosts
    13. cat >> /etc/hosts << EOF
    14. 192.168.44.146 k8smaster
    15. 192.168.44.145 k8snode1
    16. 192.168.44.144 k8snode2
    17. EOF
    18. # 将桥接的IPv4流量传递到iptables的链
    19. cat > /etc/sysctl.d/k8s.conf << EOF
    20. net.bridge.bridge-nf-call-ip6tables = 1
    21. net.bridge.bridge-nf-call-iptables = 1
    22. EOF
    23. sysctl --system # 生效
    24. # 时间同步
    25. yum install ntpdate -y
    26. ntpdate time.windows.com

    3. 所有节点安装Docker/kubeadm/kubelet

    Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。

    3.1 安装Docker

    1. $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    2. $ yum -y install docker-ce-18.06.1.ce-3.el7
    3. $ systemctl enable docker && systemctl start docker
    4. $ docker --version
    5. Docker version 18.06.1-ce, build e68fc7a
    6. $ cat > /etc/docker/daemon.json << EOF
    7. {
    8. "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    9. }
    10. EOF

    3.2 添加阿里云YUM软件源

    1. $ cat > /etc/yum.repos.d/kubernetes.repo << EOF
    2. [kubernetes]
    3. name=Kubernetes
    4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    5. enabled=1
    6. gpgcheck=0
    7. repo_gpgcheck=0
    8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    9. EOF

    3.3 安装kubeadm,kubelet和kubectl

    由于版本更新频繁,这里指定版本号部署:

    1. $ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
    2. $ systemctl enable kubelet

    4. 部署Kubernetes Master

    在192.168.31.61(Master)执行。

    1. $ kubeadm init
    2. --apiserver-advertise-address=192.168.44.146
    3. --image-repository registry.aliyuncs.com/google_containers
    4. --kubernetes-version v1.18.0
    5. --service-cidr=10.96.0.0/12
    6. --pod-network-cidr=10.244.0.0/16

    由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。

    使用kubectl工具:

    1. mkdir -p $HOME/.kube
    2. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    3. sudo chown $(id -u):$(id -g) $HOME/.kube/config
    4. $ kubectl get nodes

    注意这是在node节点中执行,因为要把node安装到master节点上

    5. 加入Kubernetes Node

    在192.168.1.12/13(Node)执行。

    向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

    1. $ kubeadm join 192.168.1.11:6443 --token esce21.q6hetwm8si29qxwn \
    2. --discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5

    注意改Ip

    6. 部署CNI网络插件

    默认镜像地址无法访问,sed命令修改为docker hub镜像仓库。

    1. kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    2. kubectl get pods -n kube-system
    3. NAME READY STATUS RESTARTS AGE
    4. kube-flannel-ds-amd64-2pc95 1/1 Running 0 72s

    7. 测试kubernetes集群

    在Kubernetes集群中创建一个pod,验证是否正常运行:

    1. $ kubectl create deployment nginx --image=nginx
    2. $ kubectl expose deployment nginx --port=80 --type=NodePort
    3. $ kubectl get pod,svc
    最后外网访问IP为你两个节点中的任意一个IP地址加上你再上一步生成的端口号
  • 相关阅读:
    OpenCV实现图像 开闭运算
    【必知必会的MySQL知识】④DCL语言
    算法|图论 3
    MySQL-DDL语句
    972信息检索 | 第四章 国内重要的综合性信息检索系统
    引爆你的网页乐趣!前端十个令人捧腹的JavaScript整蛊代码。
    有没有不用加班的程序员 ?
    使用 Learner Lab - 使用 Lambda 转换图片为 base64 格式
    flowable+springboot的使用
    【算法题】合法分组的最少组数
  • 原文地址:https://blog.csdn.net/zn2021220822/article/details/132636020