国内環境でkubeadmインストールを使用してkubernetesを導入

8716 ワード

インストール前に準備が必要:
1、仮想マシンツールVMware、VirtualBoxなど2、システムミラーファイルCentOS 7 3、仮想マシン2-3台をインストールする
このチュートリアルでは、2台の仮想マシンを使用します.
1、10.67.34.130 k8s1
2、10.67.34.131 k8s2

インストールプロセス全体を開始するには、次の手順に従います.
1、2台の仮想マシンのすべてに必要な操作は以下の通りです.
1、ホスト名の設定(主にnode情報などを見たときに表示される名称がその名称)
hostnamectl set-hostname k8s1 #k8s1      2      k8s1 k8s2

2、hostファイルを修正する(これはマスター上でのみ設定可能)
vi /etc/hosts

  
10.67.34.130 k8s1
10.67.34.131 k8s2

3、selinuxを閉じる
setenforce 0 #      

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #         

4、交換パーティションを閉じる
swapoff -a #      
sed -i '/ swap / s/^/#/' /etc/fstab #         

5、ネットワークプロファイル
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
vm.swappiness=0

#     Ctrl + D


modprobe br_netfilter  #                k8s.conf       

sysctl -p /etc/sysctl.d/k8s.conf #      

6、リソースアドレスの設定
yum install wget -y  #  wget   

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #  yum 

yum makecache #    

yum install -y yum-utils device-mapper-persistent-data lvm2 #  yum    

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #  docker     

7、Dockerのインストール
yum list docker-ce --showduplicates|sort -r  #      

yum install –y docker-ce  #       ,         

systemctl start docker #  docker
systemctl enable docker # docker       

docker version #  docker          

8、k 8 sリソースのダウンロードアドレスを配置する
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

9、クbeletクbeadmクbectlを取り付ける
yum install -y kubelet kubeadm kubectl

systemctl enable kubelet.service #    

10、ミラーのインストール
vim images.sh

#!/bin/bash

images=(
    kube-scheduler:v1.13.4
    kube-proxy:v1.13.4
    kube-controller-manager:v1.13.4
    etcd:3.2.24
    kube-apiserver:v1.13.4
    pause:3.1)

for imageName in ${images[@]} ; do
    docker pull docker.io/mirrorgooglecontainers/$imageName
    docker tag docker.io/mirrorgooglecontainers/$imageName k8s.gcr.io/$imageName
    docker rmi docker.io/mirrorgooglecontainers/$imageName
done

docker pull coredns/coredns:1.2.6
docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
docker rmi coredns/coredns:1.2.6

chmod +x images.sh
./images.sh

docker images #           pull   

二、初期化開始(メインノードMaster上のみ)
#  Master                    
kubeadm init --kubernetes-version=v1.13.4 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.67.34.130 

#            master     
kubeadm join --token 19f284.da47998c9abb01d3 10.67.34.130:6443 --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538

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

三、ノードnodeが加わる(デフォルトでは上記の手順で操作されている)
#   master        kubeadm join          ,     
kubeadm join --token 19f284.da47998c9abb01d3 10.67.34.130:6443 --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538

四、主ノード表示コマンド
#    
kubectl get cs #        Master     
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok                   
controller-manager   Healthy   ok                   
etcd-0               Healthy   {"health": "true"} 

#   
kubectl get pod -n kube-system #  pod         pod  
NAME                                   READY   STATUS             RESTARTS   AGE
coredns-86c58d9df4-j9g8d               1/1     Running            0          128m
coredns-86c58d9df4-pg45w               1/1     Running            0          128m
etcd-k8s1                              1/1     Running            0          127m
kube-apiserver-k8s1                    1/1     Running            0          127m
kube-controller-manager-k8s1           1/1     Running            0          127m


#          coredns       Running     ,       ,      Running 

#   
kubectl get node #       
NAME   STATUS   ROLES    AGE    VERSION
k8s1   Ready    master   131m   v1.13.4
k8s2   Ready    <none>   93m    v1.13.4

#                     ,    NoReady    。

五、Flannelネットワーク構成ツールをインストールし、第三層(ネットワーク層)ネットワーク構造を構成する(マスターインストールのみ)
#          yml              
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker rmi registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64

#  Flannel

mkdir -p ~/k8s/
cd k8s/
ll

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

#       pod
kubectl get pod -n kube-system
NAME                                   READY   STATUS             RESTARTS   AGE
coredns-86c58d9df4-j9g8d               1/1     Running            0          128m
coredns-86c58d9df4-pg45w               1/1     Running            0          128m
etcd-k8s1                              1/1     Running            0          127m
kube-apiserver-k8s1                    1/1     Running            0          127m
kube-controller-manager-k8s1           1/1     Running            0          127m
kube-flannel-ds-amd64-7btlw            1/1     Running            0          91m
kube-flannel-ds-amd64-9vq42            1/1     Running            0          106m
kube-flannel-ds-amd64-kdf42            1/1     Running            0          90m
kube-proxy-dtmfs                       1/1     Running            0          128m
kube-proxy-p76tc                       1/1     Running            0          90m
kube-proxy-xgw28                       1/1     Running            0          91m
kube-scheduler-k8s1                    1/1     Running            0          128m

#  Running       

#        STATUS     Running,      
kubectl describe pod  [        Name ] -n kube-system 

#            ,          。