1. 创建配置文件

  1. cat > /opt/kubernetes/cfg/kubelet.conf << EOF
  2. KUBELET_OPTS="--logtostderr=false \\
  3. --v=2 \\
  4. --log-dir=/opt/kubernetes/logs \\
  5. --hostname-override=k8s-master \\
  6. --network-plugin=cni \\
  7. --kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \\
  8. --bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \\
  9. --config=/opt/kubernetes/cfg/kubelet-config.yml \\
  10. --cert-dir=/opt/kubernetes/ssl \\
  11. --pod-infra-container-image=lizhenliang/pause-amd64:3.0"
  12. EOF
  • –hostname-override:显示名称,集群中唯一
  • –network-plugin:启用CNI
  • –kubeconfig:空路径,会自动生成,后面用于连接apiserver
  • –bootstrap-kubeconfig:首次启动向apiserver申请证书
  • –config:配置参数文件
  • –cert-dir:kubelet证书生成目录
  • –pod-infra-container-image:管理Pod网络容器的镜像

    2. 配置参数文件

    ``` cat > /opt/kubernetes/cfg/kubelet-config.yml << EOF kind: KubeletConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 address: 0.0.0.0 port: 10250 readOnlyPort: 10255 cgroupDriver: cgroupfs clusterDNS:
  • 10.0.0.2 clusterDomain: cluster.local failSwapOn: false authentication: anonymous: enabled: false webhook: cacheTTL: 2m0s enabled: true x509: clientCAFile: /opt/kubernetes/ssl/ca.pem authorization: mode: Webhook webhook: cacheAuthorizedTTL: 5m0s cacheUnauthorizedTTL: 30s evictionHard: imagefs.available: 15% memory.available: 100Mi nodefs.available: 10% nodefs.inodesFree: 5% maxOpenFiles: 1000000 maxPods: 110 EOF
    <a name="3-bootstrapkubeconfig"></a>
    #### 3. 生成bootstrap.kubeconfig文件
    
    KUBE_APISERVER=”https://192.168.31.71:6443“ # apiserver IP:PORT TOKEN=”c47ffb939f5ca36231d9e3121a252940” # 与token.csv里保持一致

    生成 kubelet bootstrap kubeconfig 配置文件

    kubectl config set-cluster kubernetes \ —certificate-authority=/opt/kubernetes/ssl/ca.pem \ —embed-certs=true \ —server=${KUBE_APISERVER} \ —kubeconfig=bootstrap.kubeconfig kubectl config set-credentials “kubelet-bootstrap” \ —token=${TOKEN} \ —kubeconfig=bootstrap.kubeconfig kubectl config set-context default \ —cluster=kubernetes \ —user=”kubelet-bootstrap” \ —kubeconfig=bootstrap.kubeconfig kubectl config use-context default —kubeconfig=bootstrap.kubeconfig
    拷贝到配置文件路径:
    
    cp bootstrap.kubeconfig /opt/kubernetes/cfg
    <a name="4-systemdkubelet"></a>
    #### 4. systemd管理kubelet
    
    cat > /usr/lib/systemd/system/kubelet.service << EOF [Unit] Description=Kubernetes Kubelet After=docker.service [Service] EnvironmentFile=/opt/kubernetes/cfg/kubelet.conf ExecStart=/opt/kubernetes/bin/kubelet \$KUBELET_OPTS Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF
    <a name="5-2"></a>
    #### 5. 启动并设置开机启动
    
    systemctl daemon-reload systemctl start kubelet systemctl enable kubelet ```