1)CA 证书配置
登录 192.168.0.1 app 用户下
cd ssl/kubernetes
#注意修改 KUBE_HOME,BOOTSTRAP_TOKEN #与 3.5 3)token 一致,
KUBE_APISERVER,IP 等信息
bash ca_kubelet.sh
#!/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.config
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/kubelet
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)小节创建用户
#!/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 &
##停止服务
#!/bin/bash
kill -9 ` ps -ef | grep kubelet | grep -v grep | awk '{print $2}'`
b.proxy 服务配置
#注意 kube-proxy 中的 IP 修改
kubernetes/cfg/kube-proxy
#!/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"
#开启与停止服务
##开启服务
#!/bin/bash KUBE_HOME=kubernetes source $KUBE_HOME/cfg/proxy nohup $KUBE_HOME/bin/kube-proxy $KUBE_PROXY_ARGS &
##停止服务
#!/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,cs