CentOS 7はkubeadmを使用してk 8 sをオンラインでインストール


ハードウェア要件
  • x86-64 processor
  • 2CPU
  • 2GB RAM
  • 10GB free disk space
  • RedHat Enterprise Linux 7.x+, CentOS 7.x+, Ubuntu 16.04+, or Debian 9.x+

  • から
    じっけんかんきょう
    ホスト名
    IP
    ロール#ロール#
    オペレーティングシステム
    CPU/MEM
    master
    192.168.118.20
    Master
    CentOS7
    2core/2GB
    node1
    192.168.118.21
    node1
    CentOS7
    2core/2GB
    node2
    192.168.118.22
    node2
    CentOS7
    2core/2GB
    インストール手順
    一、環境プリセット(すべてのホストで操作)
    1.1、firewalldを閉じる
     systemctl stop firewalld; systemctl disable firewalld 

    1.2、SElinuxを閉じる
     setenforce 0; sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 

    1.3、Swapを閉じる
     swapoff -a; sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab 
          swap,      
    vim /etc/sysconfig/kubelet
    KUBELET_EXTRA_ARGS="--fail-swap-on=false"
             --ignore-preflight-errors=Swap

    1.4、アリクラウドyumソースを使用する:
     wget -O /etc/yum.repos.d/CentOS7-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo  

    1.5、カーネルパラメータの修正
    [root@master ~]# cat <  /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    EOF
         
    [root@master ~]# sysctl --system

    1.6、ローカル解析の構成
    vim /etc/hosts
    192.168.118.20 master
    192.168.118.21 node1
    192.168.118.22 node2

    二、dockerエンジンのインストール(すべてのホストで操作)
    2.1、アリクラウドdockerソースのインストール
     wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    

    2.2、dockerのインストール
     yum install docker-ce -y 
    

    2.3、dockerを起動する
     systemctl enable docker;systemctl start docker 
    

    2.4、docker部分パラメータの調整
    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <

    2.5.dockerのCgroup Driver情報を確認する
    [root@master ~]# docker info |grep Cgroup
    Cgroup Driver: systemd
     

    三、kubernetes初期化ツールのインストール(すべてのホストで操作)
    3.1、アリクラウドを使用するkubernetesソース
    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
    EOF

    3.2、インストール
    yum install -y kubelet kubeadm kubectl 

    3.3、クbeletを起動する
    systemctl enable kubelet;systemctl start kubelet   
    #         ,              
     

    四、クラスタの初期化(masterノードで操作)
    4.1、マスター初期化
    kubeadm init --kubernetes-version=1.18.5  --apiserver-advertise-address=192.168.118.20   --image-repository mirrorgcrio  --service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16 --ignore-preflight-errors=Swap,NumCPU
        --kubernetes-version:k8s  
        --apiserver-advertise-address:spiserver   
        --image-repository:  kubeadm      k8s.grc.io      ,      ,      –image-repository  mirrorgcrio。
        --ignore-preflight-errors=Swap,NumCPU:  swap cpu  

    初期化に成功しました
    Your Kubernetes control-plane has initialized successfully!
    
    To start using your cluster, you need to run the following as a regular user:
    
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    You should now deploy a pod network to the cluster.
    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
      https://kubernetes.io/docs/concepts/cluster-administration/addons/
    
    Then you can join any number of worker nodes by running the following on each as root:
    
    kubeadm join 192.168.118.20:6443 --token akiiod.ajlbeux62nhin6kw \
        --discovery-token-ca-cert-hash sha256:76a5cfca9c7c90e319a0c27731dfab0d6c40932ba4c10b0dfb46d9528492a1d9 

    4.2、指示に従って操作する
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
       root       
    export KUBECONFIG=/etc/kubernetes/admin.conf
    
             ,    root
    export KUBECONFIG=/etc/kubernetes/admin.conf
    
      master     
    [root@k8s-master docker]# kubectl get cs
    NAME                 STATUS    MESSAGE             ERROR
    scheduler            Healthy   ok                  
    controller-manager   Healthy   ok                  
    etcd-0               Healthy   {"health":"true"}   
    
     admin         node  
    scp /etc/kubernetes/admin.conf node1:/etc/kubernetes/
    scp /etc/kubernetes/admin.conf node2:/etc/kubernetes/
    
          
    echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
    
        
    source ~/.bash_profile
    

    4.3、クラスタの再初期化
    初期化中にエラーが発生した場合は、クラスタをリセットしてからクラスタを再初期化します.
    kubeadm reset
    systemctl daemon-reload
    systemctl restart kubelet
    iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
    iptables -nL #           
    netstat -antlp #          

     
    五、calicoのインストール(masterノードで操作)
    5.1、設置
    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

    5.2、インストール成功後podを見る
    [root@master ~]# kubectl get pod -n kube-system -owide
    NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
    calico-kube-controllers-58b656d69f-jk7fr   1/1     Running   0          3m42s   10.122.219.67    master              
    calico-node-2jhdt                          1/1     Running   0          3m42s   192.168.118.20   master              
    coredns-54f99b968c-5wmbp                   1/1     Running   0          11m     10.122.219.66    master              
    coredns-54f99b968c-lgvsw                   1/1     Running   0          11m     10.122.219.65    master              
    etcd-master                                1/1     Running   0          11m     192.168.118.20   master              
    kube-apiserver-master                      1/1     Running   0          11m     192.168.118.20   master              
    kube-controller-manager-master             1/1     Running   0          11m     192.168.118.20   master              
    kube-proxy-7ms45                           1/1     Running   0          11m     192.168.118.20   master              
    kube-scheduler-master                      1/1     Running   0          11m     192.168.118.20   master              

    六、nodeがクラスタに加わる(masterノード以外の操作)
    6.1、クラスタに参加する
    kubeadm join 192.168.118.20:6443 --token akiiod.ajlbeux62nhin6kw \
        --discovery-token-ca-cert-hash sha256:76a5cfca9c7c90e319a0c27731dfab0d6c40932ba4c10b0dfb46d9528492a1d9 \
    --ignore-preflight-errors=Swap,NumCPU 

    6.2、masterノードnode及びpodの表示
    [root@master ~]# kubectl get pod -n kube-system -owide
    NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
    calico-kube-controllers-58b656d69f-jk7fr   1/1     Running   0          7m39s   10.122.219.67    master              
    calico-node-2jhdt                          1/1     Running   0          7m39s   192.168.118.20   master              
    calico-node-4258m                          0/1     Running   0          119s    192.168.118.21   node1               
    calico-node-lpcvq                          0/1     Running   0          113s    192.168.118.22   node2               
    coredns-54f99b968c-5wmbp                   1/1     Running   0          15m     10.122.219.66    master              
    coredns-54f99b968c-lgvsw                   1/1     Running   0          15m     10.122.219.65    master              
    etcd-master                                1/1     Running   0          15m     192.168.118.20   master              
    kube-apiserver-master                      1/1     Running   0          15m     192.168.118.20   master              
    kube-controller-manager-master             1/1     Running   0          15m     192.168.118.20   master              
    kube-proxy-65tr6                           1/1     Running   0          119s    192.168.118.21   node1               
    kube-proxy-7ms45                           1/1     Running   0          15m     192.168.118.20   master              
    kube-proxy-h7sg5                           1/1     Running   0          113s    192.168.118.22   node2               
    kube-scheduler-master                      1/1     Running   0          15m     192.168.118.20   master              
    [root@master ~]# kubectl get node -n kube-system -owide
    NAME     STATUS   ROLES    AGE    VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIM
    Emaster   Ready    master   15m    v1.18.5   192.168.118.20           CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://19.3.12
    node1    Ready       2m3s   v1.18.5   192.168.118.21           CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://19.3.12
    node2    Ready       117s   v1.18.5   192.168.118.22           CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://19.3.12

    これで簡単なk 8 sクラスタのインストールが完了しました
    参考記事:https://www.jianshu.com/p/ad27168bebb5