zoukankan      html  css  js  c++  java
  • k8s摸索之kubeadm快速部署

    一、虚拟机配置

    1、在WMware里装上3台虚拟机,CentOS7最小化系统,配置好独立IP,截图如下:

     2、修改虚拟机网卡配置,然后启动网卡,再查看ip已经固定

    #vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
    BOOTPROTO=static
    ONBOOT=yes
    NM_CONTROLLED=yes
    IPADDR=192.168.126.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.126.2
    DNS1=114.114.114.119
    DNS2=114.114.115.119
    
    #启动网卡
    ifup ens33
    #关闭网卡
    ifdown ens33

     二、集群部署

    以下均需在所以节点上配置

    1、关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld

    2、关闭selinux

    sed -i 's/enforcing/disabled/' /etc/selinux/config 
    setenforce 0

    3、关闭swap

    swapoff -a # 临时关闭
    sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久关闭

    4、修改主机名字和配置hosts

    #修改主机名字
    hostnamectl set-hostname 名字
    
    #vi /etc/hosts
    
    192.168.126.100 k8s-master
    192.168.126.101 k8s-node1
    192.168.126.102 k8s-node2

    5、将桥接的IPv4流量传递到iptables的链

    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF

    sysctl --system

    6、安装docker,https://docs.docker.com/engine/install/centos/

    7、安装kubeadm,kubelet和kubectl

    yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

    systemctl enable kubelet #设置开机自启

    8、部署master,在master上操作,首先查看kubeadm初始化需要的镜像版本,由于访问不了谷歌的镜像需要改会国内的

    # 查看镜像版本
    kubeadm config images list

    方法1:此时可以一个一个下载需要的镜像,再用docker tag命令改成对应的名称,或者用下面shell脚本:

    #!/bin/bash
    
    set -e
    
    KUBE_VERSION=v1.18.6
    KUBE_PAUSE_VERSION=3.2
    ETCD_VERSION=3.4.3-0
    CORE_DNS_VERSION=1.6.7
    
    GCR_URL=k8s.gcr.io
    ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
    
    images=(kube-proxy:${KUBE_VERSION}
    kube-scheduler:${KUBE_VERSION}
    kube-controller-manager:${KUBE_VERSION}
    kube-apiserver:${KUBE_VERSION}
    pause:${KUBE_PAUSE_VERSION}
    etcd:${ETCD_VERSION}
    coredns:${CORE_DNS_VERSION})
    
    for imageName in ${images[@]} ; do
      docker pull $ALIYUN_URL/$imageName
      docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
      docker rmi $ALIYUN_URL/$imageName
    done

    然后发现阿里云镜像没有那么高版本镜像,干脆把kubelet、kubectl、kubeadm降低版本

    yum remove kubelet kubeadm kubectl
    yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

    再从8开始

    方法2:初始化的时候改镜像源

    9、初始化

    kubeadm init 
    --apiserver-advertise-address=192.168.126.100 
    --image-repository registry.aliyuncs.com/google_containers 
    --kubernetes-version v1.15.0 
    --service-cidr=10.1.0.0/16 
    --pod-network-cidr=10.244.0.0/16

     10、配置kubectl,直接按照第一个框内的内容来,为了使用便捷,启用 kubectl 命令的自动补全功能

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

    11、安装pod网络插件,可按中文文档来

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    12、查看节点状态

    kubectl get nodes        #查看所有节点
    kubectl get pod --all-namespaces     #查看所有命名空间的pod
    kubectl describe pod [pod名称] --namespace=kube-system  #查看pod没准备好的原因

    12、加入node就按第二个红框的内容,注意安装pod网络

    13、查看pod和服务,只看到集群服务在跑

    kubectl get pod,svc    #svc是service的缩写

    14、创建一个nginx pod容器并对外暴露端口,再查看pod和服务

    kubectl create deployment nginx --image=nginx
    kubectl expose deployment nginx --port=80 --type=NodePort

     等到nginx准备好了访问三个node节点的ip:30567就发现都可以访问nginx服务了

  • 相关阅读:
    201521123028 《Java程序设计》第5周学习总结
    Markdown格式
    201521123028《Java程序设计》第4周学习总结
    201521123028 《Java程序设计》第3周学习总结
    Spring07 JDBC
    Spring06 Aop
    Mystring05 配置文件之间的关系
    Mybatais 13 二级缓存
    Mybatais 14 注释的配置
    Mybatais 12 一级缓存
  • 原文地址:https://www.cnblogs.com/zhylioooo/p/13373803.html
Copyright © 2011-2022 走看看