k8s-v1.10.11インストール


Centos 7はk 8 s-v 1をインストールする.10.11


環境の説明:

win10 + vmware     
     :centos7 
master:4G 4 
node1: 8G 8 
node2: 8G 8 

マスターとnodeのhostsについては、設定しなくてもいいです.
ステップ1~6は、master、nodeともに実行され、ステップ7は、masterにおいてkubectl init...、nodeにおいてkubectl join...が実行され、残りのステップが実行される必要があるかどうかは状況によって異なり、以下に詳細に説明する.
1、ファイアウォールを閉じる実行systemctl stop firewalldsystemctl disable firewalld2、selinuxとswap selinuxを無効にする:
  • 一時閉鎖:setenforce 0
  • 永久閉鎖:vi /etc/selinux/config SELINUX=disabled
  • swap:
  • 仮閉swapoff -a
  • コメント削除/etc/fstabファイルの「/dev/mapper/centos-swap」行を永久無効にします:
  • 再ロード:sysctl --system
  • 3、ルートの設定
    cat < /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    
    sysctl -p /etc/sysctl.d/k8s.conf
    PS:エラー解決centos 7 bridge-nf-call-ip 6 tables出現No such file or directoryを追加
    sysctl-pの実行時に表示されます.
    [root@localhost ~]# sysctl -p
    sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory
    sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
    

    解決方法:インストールライブラリyum install -y epel-releaseyum install -y conntrack ipvsadm ipset jq sysstat curl iptables起動システムモジュールmodprobe br_netfiltermodprobe ip_vs
    [root@localhost ~]# modprobe br_netfilter
    [root@localhost ~]# ls /proc/sys/net/bridge
    bridge-nf-call-arptables bridge-nf-filter-pppoe-tagged
    bridge-nf-call-ip6tables bridge-nf-filter-vlan-tagged
    bridge-nf-call-iptables bridge-nf-pass-vlan-input-dev
    

    実行
    [root@localhost ~]# sysctl -p
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    

    これで、エラー解決
    4、変換源
    cat < /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
    

    5、インストールコンポーネント(centos 7)yum install -y kubernetes-cni-0.6.0 yum install -y kubeadm-1.10.0-0 kubectl-1.10.0-0
    PS:
    1、      `yum -y install  kubelet kubeadm kubectl`,         。       ,
                , (yum install -y kubeadm-1.10.0-0)
    2、       k8s ,kubeadm kubectl kubelet        。       kubelet   cni
      ,  cni          kubelet,         kubelet   cni          
    

    6、ミラーPSのダウンロード:壁内の環境にある場合は、k 8 s対応バージョンのコンポーネントを手動でプールからミラーする必要があります.壁外の場合は無視できます
    作成vim pull.sh
    #!/bin/bash
    images=(kube-apiserver-amd64:v1.10.11 kube-scheduler-amd64:v1.10.11 \
    kube-controller-manager-amd64:v1.10.11 kube-proxy-amd64:v1.10.11 k8s-dns-kube-dns-amd64:1.14.8 \
    k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s-dns-sidecar-amd64:1.14.8 etcd-amd64:3.1.12 flannel:v0.10.0-amd64 \
    pause-amd64:3.1)
    
    for imageName in ${images[@]} ; do
    docker pull registry.aliyuncs.com/google_containers/$imageName
    docker tag  registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi  registry.aliyuncs.com/google_containers/$imageName
    done
    
    

    実行chmod +x pull.sh./pull.sh
    [root@node3 ~]# chmod +x pull.sh 
    [root@node3 ~]# ./pull.sh 
    Trying to pull repository registry.aliyuncs.com/google_containers/kube-apiserver-amd64 ... 
    v1.10.11: Pulling from registry.aliyuncs.com/google_containers/kube-apiserver-amd64
    90e01955edcd: Already exists 
    6b53b376f822: Downloading [==>                                                ]  1.67 MB/32.65 MB
    ......
    

    7、master初期化/node join加入クラスタmaster実行:kubeadm init --kubernetes-version=v1.10.11 --pod-network-cidr=10.244.0.0/16
    [root@master ~]# kubeadm init --kubernetes-version=v1.10.11 --pod-network-cidr=10.244.0.0/16
    ...
    

    node実行:kubeadm join 192.168.221.130:6443 --token mzyzsb.v7u2jjhikm5qihj2 \ --discovery-token-ca-cert-hash sha256:cc38145dd3197bc73ed0cb85214bdf0f869331353c514713c0bef36779bf39b5
    [root@master /]# kubeadm join 192.168.221.130:6443 --token mzyzsb.v7u2jjhikm5qihj2 \
    >     --discovery-token-ca-cert-hash sha256:cc38145dd3197bc73ed0cb85214bdf0f869331353c514713c0bef36779bf39b5
    ...
    

    PS:1)-pod-network-cidrパラメータは10.244.0.0/16を使用します.flannelコンポーネントが選択されているためです.他のコンポーネントを選択すると、そのパラメータが変更されます.2)masterがpodをスケジューリングできるようにするには、次のコマンドを実行します.kubectl taint nodes --all node-role.kubernetes.io/master-3)master参加スケジューリングkubectl taint node master node-role.kubernetes.io/master="":NoSchedule4)nodeノードが実行するkubeadm join ...コマンドをキャンセルし、masterがkubeadm initを実行するとshellに出力され、直接copyがnodeに実行されます.
    8、権限masterの設定
    1、  kubectl  root  ,  
    export KUBECONFIG=/etc/kubernetes/admin.conf
    
    2、  kubectl    root  ,  
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    node
         node     kubectl  ,        
    1、 master    `/etc/kubernetes/admin.conf`,scp node   
    2、  master    1 2,        。
    

    クラスタ情報の表示kubectl get nodes
    [root@master /]# kubectl get nodes
    NAME       STATUS     ROLES    AGE     VERSION
    node2      NotReady   node2    6d19h   v1.10.11
    node3      NotReady   node3    5d22h   v1.10.11
    master     NotReady   master   6d19h   v1.10.11
    

    PS:1)nodeノードでkubectlを使用する必要がない場合、このステップはnodeノードで無視できます.2)このライセンスは会社でよく使われており、root以外のユーザーがkubectlを使用することを許可するアプリケーションシーンがあります.非maserノードを露出してkubectlを使用します.3)情報を見ると,いくつかのノードの状態がNotReadyであるのは,flannelプラグインがインストールされていないためである4)kubectlコマンドがエラーを報告するためである.
    [root@node3 ~]# kubectl get nodes
    The connection to the server localhost:8080 was refused - did you specify the right host or port?
    

    上記のエラーの原因の1つは、関連するユーザーに権限が与えられていないため、上記の手順を実行すれば解決できます.
    9、flanelネットワークプラグインのインストール実行kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.ymlノード情報の表示
    [root@master /]# kubectl get nodes
    NAME       STATUS     ROLES    AGE     VERSION
    node2      Ready      node2    6d19h   v1.10.11
    node3      Ready      node3    5d22h   v1.10.11
    master     Ready      master   6d19h   v1.10.11
    

    これでk 8 sの導入が完了しました
    PS:2つのmagicのコマンドを補充する1)kubectl label node node-role.kubernetes.io/=クラスタの配備を開始したばかりの頃、kubectl get nodesに見えるnodeのrolesはNone
    [root@master /]# kubectl get nodes
    NAME       STATUS     ROLES    AGE     VERSION
    node2      NotReady   none    6d21h   v1.10.11
    node3      Ready      none    5d23h   v1.10.11
    master     Ready      none    6d21h   v1.10.11
    

    このコマンドは、ノードのrolesプロパティ実行kubectl label node node2 node-role.kubernetes.io/node2=を変更できます.
    [root@master /]# kubectl get nodes
    NAME       STATUS     ROLES    AGE     VERSION
    node2      NotReady   node2   6d21h   v1.10.11
    node3      Ready      none    5d23h   v1.10.11
    master     Ready      none    6d21h   v1.10.11
    

    2)kubeadm token create --print-join-command実行後kubeadm init...shellにkubeadm join ....コマンドが出力されます.kubeadm join ....には、有効期限があるtokenパラメータが含まれています.以上のコマンドをmasterで実行すると、完了したkubeadm join ....コマンドを再生成できます.
    [root@master /]# kubeadm token create --print-join-command
    kubeadm join 192.168.138.131:6443 --token lrzi12.7ttonier7365bdnb     --discovery-token-ca-cert-hash sha256:5336f2fcd7a0ab24ddb551a560096d5b309bf2f30b9cefe1b346e8561960d385 
    

    第2の命令は数十編のopenstackをひっくり返した後の成果ですよ.後になって、kubernetesの権威あるガイドラインの隅にこっそり隠れていることに気づきました.さらにk 8 sコマンドは私のkubernetesのよく使うコマンドの総括を参考にすることができます
    元旦にk 8 s配備の文章を書きたいと思って、今まで引きずって完成しました.ネット上の品質の高いk 8 s配置に関する文章ですが、なんだか細かい点を説明していないような気がします.後でいくつかのk 8 s関連の文章を書きます.異なるバージョンの異なるシステムの下での配置、k 8 s関連コンポーネントの紹介と応用、kubeflowの配置と応用などが含まれています.興味のある盆友たちは一緒に検討することができます.