運維のk 8 sクラスタ構築


K 8 sクラスタをkubeadmで配備
    :
        1、       ; 
        2、         :dns OR hosts 3 /etc/hosts
        3、   iptables firewalld   disable

1:master(192.168.1.1.99)コンポーネント:
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  yum    docker   docker-ce.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

cd /etc/yum.repos.d/
vim k8s.repo   #  kubetnetes  
[k8s]
name=K8s Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1

yum repolist           

docker-ce kubelet kubeadm kubectlのインストール
yum install docker-ce kubelet kubeadm kubectl -y 
                  
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
rpm --import yum-key.gpg

dockerを初期化dockerサービスを開始
 systemctl daemon-reload #      
 systemctl start docker.service  #  docker
 systemctl enable docker.service  #       
 systemctl enable kubelet.service 

 docker     docker                           
 1、  docker        
 cd /usr/lib/systemd/system/docker.service
   # for containers run by docker          
 Environment="HTTPS_PROXY=http://www.ik8s.io:10080"                 
 Environment="NO_PROXY=127.0.0.0/8,172.20.0.0/16"
 2、         
 kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.13.1
k8s.gcr.io/kube-controller-manager:v1.13.1
k8s.gcr.io/kube-scheduler:v1.13.1
k8s.gcr.io/kube-proxy:v1.13.1
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.2.24
k8s.gcr.io/coredns:1.2.6

    
docker pull docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.1           
docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1               

docker pull docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.1 k8s.gcr.io/kube-controller-manager:v1.13.1

docker pull docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1

docker pull docker.io/mirrorgooglecontainers/kube-proxy:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.1 k8s.gcr.io/kube-proxy:v1.13.1

docker pull docker.io/mirrorgooglecontainers/pause:3.1
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1

docker pull docker.io/mirrorgooglecontainers/etcd:3.2.24
docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24

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

クbeletの初期化
  kubelet     /etc/sysconfig/kubelet,     Swap       ,    :
 KUBELET_EXTRA_ARGS="--fail-swap-on=false"

   kubelet     
 systemctl enable kubelet.service

    

 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=192.168.0.0/6 --service.cidr=192.168.1.0/12 --ignore-preflight-errors=Swap

 --kubernetes-version=v1.11.1     #     k8s  
 --pod-network-cidr=10.244.0.0/16 #pod     
 --service.cidr=10.96.0.0/12      #service       
 --ignore-preflight-errors=Swap   #            

           error                   tag                      

次の内容が表示されると、初期化に成功しました.
Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir ~/.kube          #  .kube                sudo        root    
  sudo cp /etc/kubernetes/admin.conf ~/.kube/ #  admin.conf ./kube   
  sudo chown $(id -u):$(id -g) $HOME/.kube/config # ./kube                
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/

You can now join any number of machines by running the following on each node
as root:

#      node      (           )
  kubeadm join 192.168.1.179:6443 --token 5m7gg1.czd5td6itn9g2fhz --discovery-token-ca-cert-hash sha256:50c64cac88defae6beecf7bdde9b212094d7cc937b709b94f0baaeaaa4246e7e

 root    :
mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/
   root                

kubectl get cs   #        
kubectl get nodes #       
NAME     STATUS   ROLES    AGE   VERSION
master   NotReady    master   19h   v1.13.1   #                flannel  

  flannel  
https://github.com/coreos/flannel #flannel       
  

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

#            
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   19h   v1.13.1

#        (  master     pod  )
kubectl get pods -n kube-system
NAME                             READY   STATUS    RESTARTS   AGE
coredns-86c58d9df4-4frfz         1/1     Running   0          19h
coredns-86c58d9df4-hlr72         1/1     Running   0          19h
etcd-master                      1/1     Running   0          19h
kube-apiserver-master            1/1     Running   0          19h
kube-controller-manager-master   1/1     Running   0          19h
kube-flannel-ds-amd64-4c7jx      1/1     Running   0          19h
kube-flannel-ds-amd64-89m8l      1/1     Running   0          17h
kube-flannel-ds-amd64-rmxj9      1/1     Running   0          19h
kube-proxy-8pnqs                 1/1     Running   0          17h
kube-proxy-b4hlj                 1/1     Running   0          19h
kube-proxy-fzp2m                 1/1     Running   0          19h
kube-scheduler-master            1/1     Running   0          19h

#                 kube-system
kubectl get ns
NAME          STATUS   AGE
default       Active   19h
kube-public   Active   19h
kube-system   Active   19h

#        

Node 01インストール初期化
依存ミラーをdockerに自動的にダウンロードさせるには、masterのdockerをコピーします.サービスファイルをnode 01にmasterのk 8 s.repoとダウンロードしたdocker-ceのyumウェアハウスは、yum中にエラーが発生した場合にmasterの方法で実行するように構成されています.
yum install docker-ce kubelet kubeadm -y
1、  docker  
2、 docker 、 kubelet       

 systemctl start docker.service  #  docker
 systemctl enable docker.service  #       
 systemctl enable kubelet.service 

    
kube-proxy 、 pause        master        

 node01        
      kubeadm job  
kubeadm join 192.168.1.179:6443 --token 5m7gg1.czd5td6itn9g2fhz --discovery-token-ca-cert-hash sha256:50c64cac88defae6beecf7bdde9b212094d7cc937b709b94f0baaeaaa4246e7e --ignore-preflight-errors=Swap #       

メインノードの上でkubectl get nodesは系を調べます
kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   20h   v1.13.1
node01   Ready       19h   v1.13.1 #       

# node02 node01