(五)二进制安装k8s-1.11版本之node组件部署
2019-05-03 01:29
856 查看
软件包下载
链接:https://pan.baidu.com/s/1y1pTLJfhXbR-IT0Cz6kEoQ 提取码:z82h test -d /server/ssl/node || mkdir -p /server/ssl/node tar xf kubernetes-node-linux-amd64.tar.gz cp /tools/kubernetes/node/bin/kubelet /server/ssl/node/ cp /tools/kubernetes/node/bin/kube-proxy /server/ssl/node< 4000 h2>在master给kubelet启动时的用户名授权
kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token 文件中的 kubelet-bootstrap 用户赋予 system:node-bootstrapper 角色,然后 kubelet 才有权限创建认证请求(certificatesigningrequests)。-user=kubelet-bootstrap时token.csv中的用户名, 需要发送到master上; 这里后面传到master;
在master上运行: kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
配置kubelet
注意:没有特殊说明, 相关配置都是在跳板机上进行
设置集群参数
kubectl config set-cluster kubernetes \ --certificate-authority=/opt/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=https://192.168.213.131:6443 \ --kubeconfig=/server/ssl/node/bootstrap.kubeconfig
设置客户端认证参数,token同样来自前文master节点上文件token.csv,目前在跳板机上;
kubectl config set-credentials kubelet-bootstrap \ --token=76054b5e0bc17c558ae4bbddab790ed7 \ --kubeconfig=/server/ssl/node/bootstrap.kubeconfig
设置上下文参数
kubectl config set-context default --cluster=kubernetes --user=kubelet-bootstrap --kubeconfig=/server/ssl/node/bootstrap.kubeconfig
设置默认上下文
kubectl config use-context default --kubeconfig=/server/ssl/node/bootstrap.kubeconfig
准备kubelet启动脚本文件
cat >/server/ssl/node/kubelet.service <<EOF [Unit] Description=Kubernetes Kubelet Documentation=https://github.com/GoogleCloudPlatform/kubernetes After=docker.service Requires=docker.service [Service] WorkingDirectory=/var/lib/kubelet ExecStart=/usr/local/sbin/kubelet \ --address=0.0.0.0 \ --hostname-override=0.0.0.0 \ --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/pause-amd64:3.0 \ --experimental-bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \ --kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \ --cert-dir=/opt/kubernetes/ssl \ --cluster-dns=10.254.0.2\ --cluster-domain=cluster.local. \ --hairpin-mode promiscuous-bridge \ --allow-privileged=true \ --serialize-image-pulls=false \ --logtostderr=true \ --v=2 ExecStartPost=/sbin/iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 4194 -j ACCEPT ExecStartPost=/sbin/iptables -A INPUT -s 172.16.0.0/12 -p tcp --dport 4194 -j ACCEPT ExecStartPost=/sbin/iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 4194 -j ACCEPT ExecStartPost=/sbin/iptables -A INPUT -p tcp --dport 4194 -j DROP Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF
准备修改node节点kubelet启动服务文件0.0.0.0的脚本文件, 注意node节点的网卡名必须是ens33, 可以自己修改;
#cat change_ip.sh ip=$(ip addr |grep ens33|grep inet|awk '{print $2}'|awk -F'/' '{print $1}') sed -ri "s/=0.0.0.0/=$ip/g" /usr/lib/systemd/system/kubelet.service
把相关文件传到node节点
cd /server/ssl/node/ scp kubelet kube-proxy node01:/usr/local/sbin/ scp bootstrap.kubeconfig node01:/opt/kubernetes/cfg/ ssh node01 mkdir /var/lib/kubelet scp /server/ssl/kubelet.service node01:/usr/lib/systemd/system/ ssh change_ip.sh node01:/opt/ ssh node01 bash /opt/ change_ip.sh
服务启动
systemctl daemon-reload systemctl enable kubelet systemctl start kubelet systemctl status kubelet
在master对csr授权
kubectl get csr kubectl certificate approve node-csr-YLZHzeWk69Dvsv8JJcOFzj6VK9P4xT0MocCvWvQnrvQ
在master上进行角色绑定, 因为kubelet是通过用户system:node 和api-server进行通信, 如果没有权限是没法创建pod
kubectl create clusterrolebinding kubelet-node-clusterbinding --clusterrole=system:node --group=system:nodes
配置kube-proxy
创建kube-proxy证书签名请求
cat >/server/ssl/node/kube-proxy-csr.json<<EOF { "CN": "system:kube-proxy", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "Hangzhou", "L": "Hangzhou", "O": "k8s", "OU": "System" } ] } EOF
生成kube-proxy证书和私钥
cd /server/ssl/node cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kube-proxy-csr.json | cfssljson -bare kube-proxy
创建 kube-proxy kubeconfig 文件
\cp *.pem /opt/kubernetes/ssl/ #设置集群参数 #kubectl config set-cluster kubernetes \ --certificate-authority=/opt/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=https://192.168.213.131:6443 \ --kubeconfig=/server/ssl/node/kube-proxy.kubeconfig #设置客户端参数 #kubectl config set-credentials kube-proxy \ --client-certificate=/opt/kubernetes/ssl/kube-proxy.pem \ --client-key=/opt/kubernetes/ssl/kube-proxy-key.pem \ --embed-certs=true \ --kubeconfig=kube-proxy.kubeconfig #设置上下文参数 # kubectl config set-context default \ --cluster=kubernetes \ --user=kube-proxy \ --kubeconfig=kube-proxy.kubeconfig #设置默认上下文 #kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
准备kube-proxy服务启动脚本文件
cat > /server/ssl/node/kube-proxy.service<<EOF [Unit] Description=Kubernetes Kube-Proxy Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes After=network.target [Service] WorkingDirectory=/var/lib/kube-proxy ExecStart=/usr/local/sbin/kube-proxy --bind-address=0.0.0.0 --hostname-override= --cluster-cidr=172.30.0.0/16 --kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig --logtostderr=true --v=2 Restart=on-failure RestartSec=5 LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF
文件传到node节点
#发送kube-proxy证书和私钥文件到node节点 scp kube-proxy*.pem node01:/opt/kubernetes/ssl #发送kubeconfig文件到node节点; scp kube-proxy.kubeconfig node01:/opt/kubernetes/cfg/ #发送服务启动脚本文件到node节点 scp kube-proxy.service node01:/usr/lib/systemd/system/ #创建kube-proxy目录 ssh node01 mkdir -p /var/lib/kube-proxy
启动服务
systemctl daemon-reload systemctl start kube-proxy systemctl enable kube-proxy systemctl status kube-proxy
创建deployment和service资源验证集群是否部署正确
kubectl run nginx-test --image=nginx:1.11 --replicas=1 kubectl get pods -o wide kubectl expose deployment nginx-test --port=88 --target-port=80 --type=NodePort kubectl get svc kubectl get ep
相关文章推荐
- (七)二进制安装k8s-1.11版本之coredns部署
- (八)二进制安装k8s-1.11版本之master高可用
- (九)二进制安装k8s-1.11版本之traefix
- Kubernetes1.91(K8s)安装部署过程(六)--node节点部署
- k8s监控组件heapster安装部署
- 关于用VS2008制作的安装部署文件,安装时提示“要求安装.net Framework 3.5版本的组件”的问题
- 部署Node.js环境——使用NVM安装多版本
- k8s集群之kubernetes-dashboard和kube-dns组件部署安装
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
- K8S二进制部署node节点
- 1、安装部署NODE版本管理工具之NVM
- 基于HDP版本的YDB安装部署
- windows 安装nvm步骤(shi'yongnvm-windows管理node版本):
- Apache Tomcat 8.0.9下载、安装、配置和部署(不是最新版本)
- Hive on Spark安装部署(hive1.1,spark1.5,cdh版本)
- mysql的安装和部署版本选择5.7
- Linux安装mariadb二进制版本
- SCOM 2007 R2详解系列安装部署篇之服务器核心组件部署
- node安装express:'express' 不是内部或外部命令。无法显示版本号