1. 程式人生 > 其它 >k8s二進位制安裝-9,安裝kubelet

k8s二進位制安裝-9,安裝kubelet

技術標籤:kubernetesdockerkubernetesdocker

  • cp /usr/local/src/kubernetes/server/bin/kubelet /opt/kubernetes/bin
  • cp /usr/local/src/kubernetes/server/bin/kube-proxy /opt/kubernetes/bin

建立配置檔案

cat > /opt/kubernetes/cfg/kubelet.conf << EOF
KUBELET_OPTS="--logtostderr=false \\
--v=2 \\
--hostname-override={{node_ip}} \\
--log-dir=/opt/kubernetes/logs \\
--network-plugin=cni \\
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \\
--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \\
--config=/opt/kubernetes/cfg/kubelet-config.yml \\
--cert-dir=/opt/kubernetes/ssl \\
--pod-infra-container-image=gcr.io/google_containers/pause-amd64:3.0"
EOF
  • –hostname-override:顯示名稱,叢集中唯一
  • –network-plugin:啟用CNI
  • –kubeconfig:空路徑,會自動生成,後面用於連線apiserver
  • –bootstrap-kubeconfig:首次啟動向apiserver申請證書
  • –config:配置引數檔案
  • –cert-dir:kubelet證書生成目錄
  • –pod-infra-container-image:管理Pod網路容器的映象

配置引數檔案

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.1.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

生成bootstrap.kubeconfig檔案

kubectl config set-cluster kubernetes \
  --certificate-authority=/opt/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server="https://master_ip:6443" \
  --kubeconfig=bootstrap.kubeconfig
 
kubectl config set-credentials "kubelet-bootstrap" \
  --token="1064c534fb35c6d5a921df075d5281ac" \
  --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

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

設定開機啟動

systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet

批准kubelet證書申請加入叢集

kubectl get csr
kubectl certificate approve {{第一個引數}}