zoukankan      html  css  js  c++  java
  • K8S集群环境搭建、扩容与缩容

    服务器准备

    3台虚拟机
    192.168.0.108   K8S-master   docker
    192.168.0.105   K8S-node1    docker
    192.168.0.106   K8S-node2    docker
    

    Docker 安装

    yum -y update
    
    卸载旧版本(如果安装过旧版本的话)
    sudo yum remove -y docker*
    
    安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum makecache fast
    
    yum install -y docker-ce-3:19.03.9-3.el7.x86_64 # 这是指定版本安装
    
    docker version
    

    K8S 安装

    在每台机器执行以下操作
    sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久关闭
    
    setenforce 0 # 临时关闭
    
    swapoff -a # 临时关闭
    
    vim /etc/fstab # 永久关闭
    #注释掉swap这行
    # /dev/mapper/centos-swap swap                    swap    defaults        0 0
    
    systemctl reboot  #重启生效
    free -m  #查看下swap交换区是否都为0,如果都为0则swap关闭成功
    
    hostnamectl set-hostname k8s-master
    
    cat >> /etc/hosts << EOF
    192.168.0.108 k8s-master
    192.168.0.105 k8s-node1
    192.168.0.106 k8s-node2
    EOF
    
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    
    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    
    yum remove -y kubelet kubeadm kubectl
    
    yum list kubelet --showduplicates | sort -r
    
    yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
    
    开机启动kubelet
    systemctl enable kubelet
    systemctl start kubelet
    
    在master机器执行以下操作
    kubeadm init --apiserver-advertise-address=192.168.0.108 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
    
    在k8s-master机器上执行初始化操作(里面的第一个ip地址就是k8s-master机器的ip,改成你自己机器的,后面两个ip网段不用动)
    kubeadm init --apiserver-advertise-address=192.168.0.108 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
    

    执行后效果如下:

    在node机器执行以下操作
    kubeadm join 192.168.0.108:6443 --token q5047k.vevem7q551b5v4e2 
    >     --discovery-token-ca-cert-hash sha256:a4d298d09300be2e545db332f3d5b005a07578b3b263d00dc9e3094a23714c03
    

    集群搭建好后效果如下:

    应用软件在K8S部署

    用K8S部署Nginx

    创建一次deployment部署
    kubectl create deployment nginx --image=nginx
    kubectl expose deployment nginx --port=80 --type=NodePort  # --port是service的虚拟ip对应的端口
    

    查看Nginx的pod和service信息

    kubectl get pod,svc -o wide
    


    访问Nginx地址: http://任意节点的ip:图中Nginx的对外映射端口
    http://192.168.0.108:30903/

    扩容与缩容


    小总结

    kubectl create deployment       #创建一个deployment来管理创建的容器
    kubectl get       #显示一个或多个资源,可以使用标签过滤,默认查看当前名称空间的资源
    kubectl expose    #将一个资源暴露为一个新的kubernetes的service资源,资源包括pod (po), service (svc), replicationcontroller (rc),deployment(deploy), replicaset (rs)
    kubectl describe  #显示特定资源或资源组的详细信息
    kubectl scale     #可以对Deployment, ReplicaSet, Replication Controller, 或者StatefulSet设置新的值,可以指定一个或多个先决条件
    kubectl set       #更改现有的应用程序资源
    kubectl rollout   #资源回滚管理
    
  • 相关阅读:
    软件大赛excel转换
    迷你表单美化框架 Ideal Forms
    FLV播放器代码 网页FLV在线播放代码
    网站被降权了该怎么办
    jQuery弹出层插件bPopup
    如何去增加外部链接
    IIS MIME设置
    jQuery无缝滚动
    jQuery表单验证插件 jQuery validate
    dedecms实现关键字自动加内链
  • 原文地址:https://www.cnblogs.com/huangjianping/p/15257652.html
Copyright © 2011-2022 走看看