K8S安装
1.每个节点安装k8s kubelet kubeadm kubectl,注意与docker版本是否兼容
  sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
  sudo apt update
  查看源中的软件版本
  sudo apt-cache madison kubelet
  sudo apt install kubelet=1.14.0-00 kubeadm=1.14.0-00 kubectl=1.14.0-00
2.master节点列出需要的镜像
kubeadm config images list
  k8s.gcr.io/kube-apiserver:v1.14.0
  k8s.gcr.io/kube-controller-manager:v1.14.0
  k8s.gcr.io/kube-scheduler:v1.14.0
  k8s.gcr.io/kube-proxy:v1.14.0
  k8s.gcr.io/pause:3.1
  k8s.gcr.io/etcd:3.3.10
  k8s.gcr.io/coredns:1.3.1
3.需要翻墙,所以采用镜像下载,然后重新tag
  docker pull mirrorgooglecontainers/kube-apiserver:v1.14.0
  docker pull mirrorgooglecontainers/kube-controller-manager:v1.14.0
  docker pull mirrorgooglecontainers/kube-scheduler:v1.14.0
  docker pull mirrorgooglecontainers/kube-proxy:v1.14.0
  docker pull mirrorgooglecontainers/pause:3.1
  docker pull mirrorgooglecontainers/etcd:3.3.10
  docker pull coredns/coredns:1.3.1
  docker tag mirrorgooglecontainers/kube-apiserver:v1.14.0 k8s.gcr.io/kube-apiserver:v1.14.0
  docker tag mirrorgooglecontainers/kube-controller-manager:v1.14.0 k8s.gcr.io/kube-controller-manager:v1.14.0
  docker tag mirrorgooglecontainers/kube-scheduler:v1.14.0 k8s.gcr.io/kube-scheduler:v1.14.0
  docker tag mirrorgooglecontainers/kube-proxy:v1.14.0 k8s.gcr.io/kube-proxy:v1.14.0
  docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
  docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
  docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
4.初始化Kubernetes
sudo kubeadm init –kubernetes-version=v1.14.0 –pod-network-cidr=10.244.0.0/16
  –kubernetes-version 用来指定版本
  –pod-network-cidr 用于后期采用flannel作为网络组建而准备
  –apiserver-advertise-address  如果机器上只有单个网卡,可以不进行指定
  [ERROR Swap]: running with swap on is not supported. Please disable swap
  关闭swap
  禁用命令
  sudo swapoff -a
  启用命令
  sudo swapon -a
  查看交换分区的状态
  sudo free -m
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 172.16.121.6:6443 –token d1m708.8w7qwnomcecapizk 
      –discovery-token-ca-cert-hash sha256:01e71d90ca6e7ca5e9359519d1eb42d95c8783c764a53f6048697c586042586f 
6.安装网络插件flannel
  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  kubectl apply -f kube-flannel.yml
kubectl get cs检查
7.节点安装
   加载内核模块
  sudo modprobe ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh
8.节点加入
  kubeadm join 172.16.121.6:6443 –token d1m708.8w7qwnomcecapizk 
      –discovery-token-ca-cert-hash sha256m:01e71d90ca6e7ca5e9359519d1eb42d95c8783c764a53f6048697c586042586f 
  [WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/
  error execution phase preflight: [preflight] Some fatal errors occurred:
  [ERROR Swap]: running with swap on is not supported. Please disable swap
  关闭swap
  sudo swapoff -a
  修改cgroup
  vim /etc/default/kubelet
  KUBELET_EXTRA_ARGS=–cgroup-driver=cgroupfs
  systemctl daemon-reload
  systemctl restart kubelet
9.节点删除
在master
  kubectl drain 
  kubectl delete node 
  然后使用
  节点
  kubeadm reset
10.journalctl -f -u kubelet 查看日志
  kubectl logs -f coredns-99b9bb8bd-47mvf -n kube-system
  kubectl get pods -n kube-system
11.配置dashborad
https://blog.csdn.net/AtlanSI/article/details/88544500
  master
  kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
  所有node节点上
  docker pull mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
  docker tag mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
  docker pull mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
  docker tag mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
kubectl get pods -n kube-system 查看
  [root@C7-1 ~]# kubectl get svc -n kube-system
  NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
  kube-dns               ClusterIP   10.96.0.10       
  kubernetes-dashboard   ClusterIP   10.106.249.245   
[root@C7-1 ~]# kubectl patch svc kubernetes-dashboard -p ‘{“spec”:{“type”:”NodePort”}}’ -n kube-system
  [root@C7-1 ~]# kubectl get svc -n kube-system
  NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
  kube-dns               ClusterIP   10.96.0.10       
  kubernetes-dashboard   NodePort    10.106.249.245   
  kubernetes-dashboard   NodePort    10.99.200.36   
12.Forwarding loop detected in “.” zone. Exiting. See
修改/etc/resolve.conf nameserver 114.114.114.114
kubectl delete pod coredns-fb8b8dccf-7vqfw -n kube-system 删除节点