安装kubelet kubeadm kubectl

  • 官方安装

      apt-get update && apt-get install -y apt-transport-https curl
      curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
      cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
      deb https://apt.kubernetes.io/ kubernetes-xenial main
      EOF
      apt-get update
      apt-get install -y kubelet kubeadm kubectl
      apt-mark hold kubelet kubeadm kubectl
    

    目前只有Ubuntu16.04的源

  • 国内安装

      apt-get update && apt-get install -y apt-transport-https curl
      curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
      cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
      deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
      EOF 
      apt-get update
      apt-get install -y kubelet kubeadm kubectl
      apt-mark hold kubelet kubeadm kubectl
    

    目前只有Ubuntu16.04的源

    设置Container runtimes

    # Setup docker daemon. cat > /etc/docker/daemon.json «EOF { “exec-opts”: [“native.cgroupdriver=systemd”], “log-driver”: “json-file”, “log-opts”: { “max-size”: “100m” }, “storage-driver”: “overlay2” } EOF

    mkdir -p /etc/systemd/system/docker.service.d

    # Restart docker. systemctl daemon-reload systemctl enable docker.service systemctl restart docker

关闭Swap的设备

swapoff -a *永久关闭,只需要注释/etc/fstab中的swap分区即可* # 下载docker镜像 * gcr官方镜像(被墙)
  
    docker pull k8s.gcr.io/kube-apiserver:v1.15.0 
    docker pull k8s.gcr.io/kube-controller-manager:v1.15.0 
    docker pull k8s.gcr.io/kube-scheduler:v1.15.0 
    docker pull k8s.gcr.io/kube-proxy:v1.15.0 
    docker pull k8s.gcr.io/pause:3.1 
    docker pull k8s.gcr.io/etcd:3.3.10 
    docker pull k8s.gcr.io/coredns:1.3.1
  • 采用docker官方镜像,之后tag改名

      docker pull mirrorgooglecontainers/kube-apiserver:v1.15.0 
      docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.0 
      docker pull mirrorgooglecontainers/kube-scheduler:v1.15.0 
      docker pull mirrorgooglecontainers/kube-proxy:v1.15.0 
      docker pull mirrorgooglecontainers/pause:3.1 
      docker pull mirrorgooglecontainers/etcd:3.3.10 
      docker pull coredns/coredns:1.3.1
    

使用 kubeadm 创建一个单主集群

kubeadm init --pod-network-cidr=10.244.0.0/16 //ip必须与kube-flannel.yml 中的IP一直 # 执行以下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config # 添加节点加入集群
kubeadm join <master ipaddress>:6443 --token <token key> \
--discovery-token-ca-cert-hash sha256:<ca-hash key>
  • token key

      kubeadm token create
    
  • ca-hash key

      openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'  # 添加网络组件   kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml # 常用命令   kubectl get pods -o wide -n kube-system   kubectl get node   kubectl label nodes  <node1> node-role.kubernetes.io/node=   kubectl label nodes  <node1> node-role.kubernetes.io/node-