zoukankan      html  css  js  c++  java
  • 安装部署k8s-版本-1.13

    1.环境准备

    # 统一hosts
    cat /etc/hosts
    10.0.0.10  k8s-master
    10.0.0.20  k8s-node1
    10.0.0.30  k8s-node2
    # 同步时间
    ntpdate ntp1.aliyun.com
    # 禁用SELINUX,关闭firewalld和iptables.service,k8s会自己设置iptables网络策略 
    systemctl stop iptables.service
    systemctl disable iptables.service
    systemctl stop firewalld.service 
    systemctl disable firewalld.service
    # 关闭swap,修改/etc/fstab文件,注释掉SWAP的自动挂载,使用free -m确认swap已经关闭
    swapoff -a
    # 调整swappiness参数
    # 创建/etc/sysctl.d/k8s.conf文件,添加如下内容
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    vm.swappiness=0
    # 生效
    modprobe br_netfilter
    sysctl -p /etc/sysctl.d/k8s.conf
    # 开启ipvs
    yum -y install ipvsadm
    vim /etc/sysconfig/modules/ipvs.modules
    #!/bin/bash
    ipvs_mods_dir="/usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs"
    for i in $(ls $ipvs_mods_dir | grep -o "^[^.]*");do
       /sbin/modinfo -F filename $i &> /dev/null
      if [ $? -eq 0 ];then
        /sbin/modprobe $i
      fi
    done
    chmod +x /etc/sysconfig/modules/ipvs.modules
    bash /etc/sysconfig/modules/ipvs.modules
    lsmod | grep ip_vs
    

    2.安装

    # 安装 Docker
    yum install -y yum-utils device-mapper-persistent-data lvm2
    curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install docker-ce-18.06.1.ce-3.el7 -y
    # 翻墙代理不管用了,注释掉
    vim /usr/lib/systemd/system/docker.service
    #Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
    Environment="NO_PROXY=127.0.0.1/8,127.0.0.1/16"
    systemctl daemon-reload
    systemctl start docker
    systemctl enable docker
    
    cat /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    # 给两个node分发文件
    ssh-keygen -t dsa
    ssh-copy-id -i ~/.ssh/id_dsa.pub 10.0.0.20
    ssh-copy-id -i ~/.ssh/id_dsa.pub 10.0.0.30
    for i in 20 30; do scp /etc/yum.repos.d/{docker-ce.repo,kubernetes.repo} 10.0.0.$i:/etc/yum.repos.d/;done
    # 如果用下面这条命令,就会下载最新版本,这里我们用1.13
    # yum install -y kubelet kubeadm kubectl
    yum -y install kubelet-1.13.0 kubeadm-1.13.0 kubernetes-cni-0.6.0 kubectl-1.13.0
    # 设置为开机自启,先不要启动该服务.等初始化完成了再启动
    systemctl enable kubelet
    # 将镜像先下载到本地
    cat pull-images.sh
    #!/bin/bash
    images=(kube-apiserver:v1.13.0 kube-controller-manager:v1.13.0 kube-scheduler:v1.13.0 kube-proxy:v1.13.0 pause:3.1 etcd:3.2.24 coredns:1.2.6)
    
    for ima in ${images[@]}
    do
       docker pull   registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima
       docker tag    registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima   k8s.gcr.io/$ima
       docker rmi  -f  registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima
    done
    
    chmod +x pull-images.sh && ./pull-images.sh
    # 集群初始化
    vim /etc/sysconfig/kubelet
    KUBELET_EXTRA_ARGS="--fail-swap-on=false"
    kubeadm init --kubernetes-version=v1.13.0 --pod-network-cidr=10.244.0.0/16 
    --service-cidr=10.96.0.0/12  --ignore-preflight-errors=Swap
    ...
      kubeadm join 10.0.0.10:6443 --token 05blrg.37hx6cwa85giuj5c --discovery-token-ca-cert-hash 
    sha256:0a1635e9f31e78317524545faa3dd5957665f8b871b168a605ef523dacbea7bb
    # 初始化中输出的kubeadm join 10.0.0.10:6443这句话,保存好,以后要使用这个命令把node加入集群,并且该命令无法复现
    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    # 安装flannel网络组件(master上执行)
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    初始化k8s集群

    3.查看信息

    # 查看状态信息
    kubectl get cs
    # 查看节点信息,状态为NotReady,是因为还缺flannel组件,没有这个组件无法设置网络
    kubectl get nodes
    # 查看当前master节点上kube-system名称空间里运行的所有pod状态
    kubectl get pods -n kube-system
    # 所有pod必须保证都是running状态的,如果哪个不是,可以通过类似如下命令查看原因
    kubectl dscrible pods coredns-86c58d9df4-qz9xc -n kube-system
    # 查看当前节点名称空间
    kubectl get ns
    # 查看pod详细状态
    kubectl get pods -n kube-system -o wide
    kubectl get pods --all-namespaces -o wide
    

    4.node上执行

    # nodes上可以不安装kubectl
    yum -y install kubelet-1.13.0 kubeadm-1.13.0 kubernetes-cni-0.6.0
    systemctl enable kubelet
    cat pull-images.sh
    #!/bin/bash
    images=(pause:3.1 kube-proxy:v1.13.0)
    for ima in ${images[@]}
    do
       docker pull   registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima
       docker tag    registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima   k8s.gcr.io/$ima
       docker rmi  -f  registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima
    done
    
    chmod +x pull-images.sh && ./pull-images.sh
    docker pull quay.io/coreos/flannel:v0.11.0-amd64
    # 执行kubeadm join
    vim /etc/sysconfig/kubelet
    KUBELET_EXTRA_ARGS="--fail-swap-on=false"
    kubeadm join 10.0.0.10:6443 --token 05blrg.37hx6cwa85giuj5c --discovery-token-ca-cert-hash 
    sha256:0a1635e9f31e78317524545faa3dd5957665f8b871b168a605ef523dacbea7bb 
    --ignore-preflight-errors=Swap
    

    也可以从这里下载镜像registry.cn-hangzhou.aliyuncs.com/google_containers

    node节点上需要的三个镜像

    两个节点加入master

    参考博客:https://www.jianshu.com/p/427162394424

    参考博客:http://blog.itpub.net/28916011/viewspace-2213536/

  • 相关阅读:
    20145305 《信息安全系统设计基础》实验二 固件设计
    20145305 《信息安全系统设计基础》期中总结
    20145305 《信息安全系统设计基础》第7周学习总结
    20145305 《信息安全系统设计基础》第6周学习总结
    20145305 《信息安全系统设计基础》第5周学习总结
    20145305 《信息安全系统设计基础》第3周学习总结
    # 20145305 《信息安全系统设计基础》第2周学习总结
    20145305《信息安全系统设计基础》第1周学习总结
    20145304 20145315 《信息安全系统设计基础》 实验一 开发环境的熟悉
    20145304 《信息安全系统设计基础》第十一周学习总结
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/11030129.html
Copyright © 2011-2022 走看看