• Cents 7 Kubernetes


    一、系统准备

    1、环境

    3台centos 7 ,1台master2台Node节点,生成环境一般3台master和N台Node节点。

    cat /etc/redhat-release
    CentOS Linux release 7.7.1908 (Core)

    2、修改主机名

    hostnamectl set-hostname master
    hostnamectl set-hostname node-1
    hostnamectl set-hostname node-2

    3、安装docker

    参考:https://www.cnblogs.com/fanxp/p/11997680.html

    4、设置

    # 关闭SElinux
    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
    # 关闭防火墙
    systemctl disable --now firewalld  
    
    # 关闭swap
    swapoff -a && sysctl -w vm.swappiness=0  
    # 取消开机挂载swap
    sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  
    
    # 解决路由异常问题
    yum install -y bridge-utils.x86_64
    # 加载br_netfilter模块,使用lsmod查看开启的模块
    modprobe  br_netfilter  
    cat <<EOF >  /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    # 重新加载所有配置文件
    sysctl --system  

    二、安装kubelet kubeadm kubectl

    1、设置源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
           http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF

    2、安装

    # 查询可用版本
    yum list --showduplicates | grep 'kubeadm|kubectl|kubelet'
    # 这里默认安装最新版本(v1.17.0)
    yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    # 设置开启启动并启动kubelet
    systemctl enable kubelet && systemctl start kubelet

    3、master

    拉取镜像

    # 拉取集群所需镜像,这个需要FQ
    kubeadm config images pull 
    
    # 不能FQ用下面方法
    kubeadm config images list 
    
    # 用其它地址拉起然后用tag修改
    docker pull gcr.azk8s.cn/google-containers/kube-apiserver:v1.17.0
    docker pull gcr.azk8s.cn/google-containers/kube-controller-manager:v1.17.0
    docker pull gcr.azk8s.cn/google-containers/kube-scheduler:v1.17.0
    docker pull gcr.azk8s.cn/google-containers/kube-proxy:v1.17.0
    docker pull gcr.azk8s.cn/google-containers/pause:3.1
    docker pull gcr.azk8s.cn/google-containers/etcd:3.4.3-0
    docker pull gcr.azk8s.cn/google-containers/coredns:1.6.5
    
    # 修改tag
    docker tag gcr.azk8s.cn/google-containers/kube-apiserver:v1.17.0 k8s.gcr.io/kube-apiserver:v1.17.0
    docker tag gcr.azk8s.cn/google-containers/kube-controller-manager:v1.17.0 k8s.gcr.io/kube-controller-manager:v1.17.0
    docker tag gcr.azk8s.cn/google-containers/kube-scheduler:v1.17.0 k8s.gcr.io/kube-scheduler:v1.17.0
    docker tag gcr.azk8s.cn/google-containers/kube-proxy:v1.17.0 k8s.gcr.io/kube-proxy:v1.17.0
    docker tag gcr.azk8s.cn/google-containers/pause:3.1 k8s.gcr.io/pause:3.1
    docker tag gcr.azk8s.cn/google-containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
    docker tag gcr.azk8s.cn/google-containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
    
    # 删除原镜像
    docker rmi gcr.azk8s.cn/google-containers/kube-apiserver:v1.17.0
    docker rmi gcr.azk8s.cn/google-containers/kube-controller-manager:v1.17.0
    docker rmi gcr.azk8s.cn/google-containers/kube-scheduler:v1.17.0
    docker rmi gcr.azk8s.cn/google-containers/kube-proxy:v1.17.0
    docker rmi gcr.azk8s.cn/google-containers/pause:3.1
    docker rmi gcr.azk8s.cn/google-containers/etcd:3.4.3-0
    docker rmi gcr.azk8s.cn/google-containers/coredns:1.6.5

    初始化

    kubeadm init --apiserver-advertise-address 192.168.1.221 --pod-network-cidr 10.244.0.0/16

    --apiserver-advertise-address API Server将要广播的监听地址。如指定为 `0.0.0.0` 将使用缺省的网卡地址。
    --pod-network-cidr=10.244.0.0/16 指明pod网络可以使用的IP地址段。 如果设置了这个参数,control plane将会为每一个节点自动分配CIDRs。

    用户设置权限

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

    flannel网络

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

    4、node

    拉取镜像

    #拉取
    docker pull gcr.azk8s.cn/google-containers/kube-proxy:v1.17.0
    docker pull gcr.azk8s.cn/google-containers/pause:3.1
    
    #修改tag
    docker tag gcr.azk8s.cn/google-containers/kube-proxy:v1.17.0 k8s.gcr.io/kube-proxy:v1.17.0
    docker tag gcr.azk8s.cn/google-containers/pause:3.1 k8s.gcr.io/pause:3.1
    
    #删除原镜像
    docker rmi gcr.azk8s.cn/google-containers/kube-proxy:v1.17.0
    docker rmi gcr.azk8s.cn/google-containers/pause:3.1

     添加节点

    kubeadm join 192.168.1.221:6443 --token pt7x4v.5hz02ixc3ymt26az 
        --discovery-token-ca-cert-hash sha256:5104ec0c1da36ff56fe2592ac53e7ee2ba3247da4d9582ae49457ce6747fcf27 

    5、查看节点状态

    在master中执行

    kubectl get nodes

     node节点状态处于 NotReady,可以查看pod是否运行正常

    kubectl get pod --all-namespaces

     通过 kubectl describe pod <Pod Name> 查看 Pod 的具体情况

    kubectl describe pod kube-flannel-ds-amd64-4l92d --namespace=kube-system

    通过这里可以看到,node节点正在拉取quay.io/coreos/flannel:v0.11.0-amd64镜像,可以多等一会,node节点拉取完镜像kubernetes会自动重试

    如果一直没有成功,可以通过下面命令查看是在哪个节点,直接去node节点机器手动执行docker pull下载镜像

    kubectl get pod -o wide --all-namespaces

     最终效果

  • 相关阅读:
    yii1.0 yii2.0 ar
    php 函数
    整除理论,1.1数的整除性定理总结
    设M=5^2003+7^2004+9^2005+11^2006,求证8|M。(整除理论,1.1.8)
    已知整数m,n,p,q适合(m-p)|(mn+pq)证明:(m-p)|(mq+np)(整除理论1.1.5)
    证明:一个整数a若不能被6整除,则a2+24必能被24整除。(整除理论,1.1.4)
    ural 1073.Square Country(动态规划)
    10个男孩和n个女孩共买了n2+8n+2本书,已知他们每人买的书本的数量是相同的,且女孩人数多于南海人数,问女孩人数是多少?(整除原理1.1.3)
    设正整数n的十进制表示为n=ak……a1a0(0<=ai<=9,0<=i<=k,ak!=0),n的个位为起始数字的数字的正负交错之和T(n)=a0+a1+……+(-1)kak,证明:11|n的充分必要条件是11|T(n);(整除理论1.1.2))
    设n是奇数,证明:16|(n4+4n2+11)(整除原理1.1.1)
  • 原文地址:https://www.cnblogs.com/fanxp/p/12076982.html
Copyright © 2020-2023  润新知