• Kubernetes部署



    环境部署

    在所有节点上安装Docker和kubeadm
    部署Kubernetes Master
    部署容器网络插件
    部署 Kubernetes Node,将节点加入Kubernetes集群中
    部署 Dashboard Web 页面,可视化查看Kubernetes资源

    192.168.32.11 master
    192.168.32.12 node01
    192.168.32.13 node02

    所有节点,关闭防火墙规则,关闭selinux,关闭swap交换

    #所有节点,关闭防火墙规则,关闭selinux,关闭swap交换
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    swapoff -a		#交换分区必须要关闭
    sed -ri 's/.*swap.*/#&/' /etc/fstab	#永久关闭swap分区,&符号在sed命令中代表上次匹配的结果
    vi /etc/hosts
    192.168.32.11 master
    192.168.32.12 node01
    192.168.32.13 node02
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl --system
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    所有节点安装Docker

    安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    设置阿里云镜像源
    cd /etc/yum.repos.d/
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    #安装docker-ce 社区版
    yum install -y docker-ce
    
    systemctl start docker
    systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    所有节点配置K8S源

    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
    
    #安装 kubelet、kubeadm、kubectl 组件
    yum list | grep kubes
    yum install -y kubelet-1.21.3 kubeadm-1.21.3 kubectl-1.21.3
    systemctl start kubelet
    systemctl enable kubelet
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    master节点制作

    kubeadm init --apiserver-advertise-address=192.168.32.11 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version v1.21.3 --service-cidr=10.125.0.0/16 --pod-network-cidr=10.150.0.0/16
    
    kubeadm init \
    --apiserver-advertise-address=192.168.32.11 \    #指定master监听的地址,修改为自己的master地址
    --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \   #指定为aliyun的下载源,最好用国内的
    --kubernetes-version v1.21.3 \                #指定k8s版本,1.18.0版本比较稳定
    --service-cidr=10.125.0.0/16 \                 #设置集群内部的网络
    --pod-network-cidr=10.150.0.0/16                #设置pod的网络
    # service-cidr 和 pod-network-cidr 最好就用这个,不然需要修改后面的 kube-flannel.yaml 文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    创建K8S组件的家目录 提权(必做)

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

    在这里插入图片描述

    镜像批量导出

    docker save `docker images | grep -v TAG | awk '{print $1":"$2}'` -o name.tar.gz
    
    • 1

    在这里插入图片描述

    生成token

    kubeadm token create --print-join-command
    
    • 1

    在这里插入图片描述

    k8s-node 节点加入 master 节点(两个 node 执行)

    获取前面创建好的token令牌
    kubeadm join 192.168.32.11:6443 --token jnqlh0.ezwo5u1qr93dj82s --discovery-token-ca-cert-hash sha256:0e6d62f0df2cbb6cb681a0883f58b1bc1916744c0ba97cdfacea663c9b881dc2
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    master节点安装部署pod网络插件(flannel)

    下载插件yaml插件

    #国外网站
    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    #国内网站
    wget http://120.78.77.38/file/kube-flannel.yaml
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    #安装
    kubectl apply -f kube-flannel.yaml
    
    • 1
    • 2

    在这里插入图片描述

    调整参数:

    cd /etc/kubernetes/manifests/
    vim kube-controller-manager.yaml
    #26行 --port=0  ”#“注释掉
    
    vim kube-scheduler.yaml
    #19行参数注释 - --port=0
    
    #使用watch -n 1 kubectl get pods -A 等待pod ”running“
    
    
    kubectl label node node01 node-role.kubernetes.io/node=node
    kubectl label node node02 node-role.kubernetes.io/node=node
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    kubectl get node
    在这里插入图片描述

    #查询master是否正常 
    kubectl get cs 
    #查询所有pod是否正常运行 
    kubectl get pods -A 
    #查询node节点是否ready 
    kubectl get nodes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    测试 k8s 集群,在集群中创建一个 pod,验证是否能正常运行

    #部署服务
    kubectl create deployment nginx --image=nginx:1.14
    #暴露端口
    kubectl expose deployment nginx --port=80 --type=NodePort
    kubectl get pods
    kubectl get svc(service)
    #删除pod与svc
    kubectl delete deploy/nginx
    kubectl delete svc/nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    02.MySQL函数及约束、多表笔记
    双核电脑开200线程会崩溃吗?如何解决
    LabVIEW在OPC中使用基金会现场总线
    springboot接收前端传参的几种方式
    Revit插件实现【快速扣减】的两种操作
    金仓数据库KingbaseES客户端应用参考手册--10. sys_config
    列表作为条件查询的参数
    HTML5期末大作业:HTML+CSS茶叶官网网页设计实例 企业网站制作
    rust枚举
    工具篇 | 04 | STS
  • 原文地址:https://blog.csdn.net/l17605229954/article/details/127570365