k8s記錄-node組件部署(十)

1)CA 證書配置
登陸 192.168.0.1 app 用戶下
cd ssl/kubernetes
#注意修改 KUBE_HOME,BOOTSTRAP_TOKEN #與 3.5 3)token 一致,
KUBE_APISERVER,IP 等信息
bash ca_kubelet.shnode

#!/bin/bash
KUBE_HOME=kubernetes
BOOTSTRAP_TOKEN=f192f8a03c6a087e6033c233eb22aae3 #與3.5 3)token一致
KUBE_APISERVER=https://192.168.0.1:6443
#設置集羣參數
 $KUBE_HOME/bin/kubectl config set-cluster kubernetes \
  --certificate-authority=./ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=bootstrap.kubeconfig
#設置客戶端認證參數
$KUBE_HOME/bin/kubectl config set-credentials kubelet-bootstrap \
  --token=${BOOTSTRAP_TOKEN} \
  --kubeconfig=bootstrap.kubeconfig
#設置上下文參數
$KUBE_HOME/bin/kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=bootstrap.kubeconfig
#設置默認上下文
$KUBE_HOME/bin/kubectl config use-context default --kubeconfig=bootstrap.kubeconfig
#建立kube-proxy kubeconfig文件
#設置集羣參數
$KUBE_HOME/bin/kubectl config set-cluster kubernetes \
  --certificate-authority=./ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=kube-proxy.kubeconfig
#設置客戶端認證參數
$KUBE_HOME/bin/kubectl config set-credentials kube-proxy \
  --client-certificate=./kube-proxy.pem \
  --client-key=./kube-proxy-key.pem \
  --embed-certs=true \
  --kubeconfig=kube-proxy.kubeconfig
#設置上下文參數
$KUBE_HOME/bin/kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig
#設置默認上下文
$KUBE_HOME/bin/kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
# 將bootstrap kubeconfig kube-proxy.kubeconfig 文件拷貝到全部 nodes節點
cp bootstrap.kubeconfig kube-proxy.kubeconfig   $KUBE_HOME/ssl
scp bootstrap.kubeconfig kube-proxy.kubeconfig  app@192.168.0.2:$KUBE_HOME/ssl
scp bootstrap.kubeconfig kube-proxy.kubeconfig  app@192.168.0.2:$KUBE_HOME/ssl

如下在 192.168.0.1 192.168.0.2 192.168.0.3 app 用戶下操做
2)程序準備
tar xvf kubernetes-node-linux-amd64.tar.gz
mkdir -p kubernetes/{bin,cfg,ssl}
a.kubelet 服務配置
#注意修改 kubelet.config 中的 address 和 clusterDNS
kubernetes/cfg/kubelet.configlinux

kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
address: xxx.xxx.xxx.xxx
port: 10250
readOnlyPort: 10255
cgroupDriver: cgroupfs
clusterDNS: ["10.1.0.2"]
clusterDomain: cluster.local.
failSwapOn: false
authentication:
  anonymous:
    enabled: true

#注意修改 kubelet 中的 IP 路徑
kubernetes/cfg/kubernetes/kubeletbootstrap

KUBE_HOME=kubernetes
KUBE_IP=192.168.0.1
KUBELET_ARGS="--logtostderr=true \
--v=4 \
--hostname-override=$KUBE_IP \
--kubeconfig=$KUBE_HOME/cfg/kubelet.kubeconfig \
--bootstrap-kubeconfig=$KUBE_HOME/cfg/bootstrap.kubeconfig \
--config=$KUBE_HOME/cfg/kubelet.config \
--cert-dir=$KUBE_HOME/ssl \
--pod-infra-container-image=k8s.gcr.io/pause:3.1"

使用 root 用戶執行
mkdir -p /data/kubelet
ln -s /data/kubelet /var/lib/kubelet
#開啓與中止服務
##開啓服務
執行以前操做 3)小節建立用戶api

#!/bin/bash
KUBE_HOME=kubernetes
$KUBE_HOME/bin/kubectl create clusterrolebinding kubelet-bootstrap \
 --clusterrole=system:node-bootstrapper \
 --user=kubelet-bootstrap
kubectl create clusterrolebinding kubelet-bootstrap \
 --clusterrole=system:node-bootstrrooter \
 --user=kubelet-bootstrap
kubectl create clusterrolebinding system:anonymous --clusterrole=cluster-admin --user=system:anonymous

source $KUBE_HOME/cfg/kubelet
nohup $KUBE_HOME/bin/kubelet $KUBELET_ARGS &

##中止服務bash

#!/bin/bash
kill -9 ` ps -ef | grep kubelet | grep -v grep | awk '{print $2}'`

b.proxy 服務配置
#注意 kube-proxy 中的 IP 修改
kubernetes/cfg/kube-proxyapp

#!/bin/bash
KUBE_HOME=kubernetes
KUBE_IP=192.168.0.1
CLUSTERCIDR="10.1.0.0/24"
KUBE_PROXY_ARGS="--logtostderr=true \
--v=4 \
--hostname-override=$KUBE_IP \
--cluster-cidr=$CLUSTERCIDR \
--kubeconfig=$KUBE_HOME/cfg/kube-proxy.kubeconfig"

#開啓與中止服務
##開啓服務ide

#!/bin/bash
KUBE_HOME=kubernetes
source $KUBE_HOME/cfg/proxy
nohup $KUBE_HOME/bin/kube-proxy $KUBE_PROXY_ARGS &

##中止服務server

#!/bin/bash
kill -9 ` ps -ef | grep kube-proxy | grep -v grep | awk '{print $2}'`

3) master 節點配置
#將 kubelet-bootstrap 用戶綁定到系統集羣角色
kubectl create clusterrolebinding kubelet-bootstrap \
--clusterrole=system:node-bootstrapper \
--user=kubelet-bootstrap
kubectl create clusterrolebinding system:anonymous --clusterrole=cluster-admin --
user=system:anonymous
##approve kubelet CSR 請求
#查看 CSR 列表:
kubectl get csr
kubectl certificate approve ${csrname}
kubectl get csr
#查看集羣狀態
kubectl get node,csblog

相關文章
相關標籤/搜索