部署kubelet
1、准备二进制包
[root@k8smaster ~]# cd /usr/local/src/kubernetes/server/bin/

[root@k8smaster bin]# scp kubelet kube-proxy k8snode1:/opt/kubernetes/bin/
[root@k8smaster bin]# scp kubelet kube-proxy k8snode2:/opt/kubernetes/bin/

2.创建角色绑定
[root@k8smaster bin]# cd /usr/local/src/ssl/
[root@k8smaster ssl]# kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
clusterrolebinding.rbac.authorization.k8s.io "kubelet-bootstrap" created

3.创建 kubelet bootstrapping kubeconfig 文件 设置集群参数
[root@k8smaster ssl]# kubectl config set-cluster kubernetes \
--certificate-authority=/opt/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=https://192.168.137.171:6443 \
--kubeconfig=bootstrap.kubeconfig
Cluster "kubernetes" set.

设置客户端认证参数
[root@k8smaster ssl]# kubectl config set-credentials kubelet-bootstrap \
--token=ad6d5bb607a186796d8861557df0d17f \
--kubeconfig=bootstrap.kubeconfig
User "kubelet-bootstrap" set.

设置上下文参数
[root@k8smaster ssl]# kubectl config set-context default \
--cluster=kubernetes \
--user=kubelet-bootstrap \
--kubeconfig=bootstrap.kubeconfig
Context "default" created.

选择默认上下文
[root@k8smaster ~]# kubectl config use-context default --kubeconfig=bootstrap.kubeconfig
Switched to context "default".

[root@k8smaster ssl]# cp bootstrap.kubeconfig /opt/kubernetes/cfg/
[root@k8smaster ssl]# scp bootstrap.kubeconfig k8snode1:/opt/kubernetes/cfg/bootstrap.kubeconfig
[root@k8smaster ssl]# scp bootstrap.kubeconfig k8snode2:/opt/kubernetes/cfg/bootstrap.kubeconfig

node节点部署kubelet
1.设置CNI支持(master节点可不配置)
[root@k8smaster ssl]# mkdir -p /etc/cni/net.d
[root@k8smaster ssl]# vim /etc/cni/net.d/10-default.conf

{
"name": "flannel",
"type": "flannel",
"delegate": {
"bridge": "docker0",
"isDefaultGateway": true,
"mtu": 1400
}
}

[root@k8smaster ssl]# scp /etc/cni/net.d/10-default.conf k8snode1:/etc/cni/net.d
[root@k8smaster ssl]# scp /etc/cni/net.d/10-default.conf k8snode2:/etc/cni/net.d

[root@k8smaster ssl]#

2、 创建kubelet目录
[root@k8snode1 ~]# mkdir /var/lib/kubelet
[root@k8snode1 ~]# vim /usr/lib/systemd/system/kubelet.service

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/var/lib/kubelet
ExecStart=/opt/kubernetes/bin/kubelet \
--address=192.168.137.201 \
--hostname-override=192.168.137.201 \
--pod-infra-container-image=mirrorgooglecontainers/pause-amd64:3.0 \
--experimental-bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \
--cert-dir=/opt/kubernetes/ssl \
--network-plugin=cni \
--cni-conf-dir=/etc/cni/net.d \
--cni-bin-dir=/opt/kubernetes/bin/cni \
--cluster-dns=10.1.0.2 \
--cluster-domain=cluster.local. \
--hairpin-mode hairpin-veth \
--allow-privileged=true \
--fail-swap-on=false \
--logtostderr=true \
--v=2 \
--logtostderr=false \
--log-dir=/opt/kubernetes/log
Restart=on-failure
RestartSec=5

[root@k8snode1 ~]# systemctl daemon-reload
[root@k8snode1 ~]# systemctl enable kubelet
[root@k8snode1 ~]# systemctl start kubelet
[root@k8snode1 ~]# systemctl status kubelet

查看csr请求 注意是在k8smster上执行。
[root@k8smaster bin]# kubectl get csr
NAME AGE REQUESTOR CONDITION
node-csr--H3IeaAXhDIlgw3nvfJZxfbJdURjjzNBBng4GthssxE 6m kubelet-bootstrap Pending
node-csr-s32pz33uIKZWEkXwIDHR09pxZKXwy1R6lug6KbXBBvE 6m kubelet-bootstrap Pending

批准kubelet 的 TLS 证书请求
[root@k8smaster bin]# kubectl get csr|grep 'Pending' | awk 'NR>0{print $1}'| xargs kubectl certificate approve
certificatesigningrequest.certificates.k8s.io "node-csr--H3IeaAXhDIlgw3nvfJZxfbJdURjjzNBBng4GthssxE" approved
certificatesigningrequest.certificates.k8s.io "node-csr-s32pz33uIKZWEkXwIDHR09pxZKXwy1R6lug6KbXBBvE" approved

查看node节点状态
[root@k8smaster ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8snode1 Ready <none> 38s v1.10.1
k8snode2 Ready <none> 38s v1.10.1

转载于:https://blog.51cto.com/andyliu/2129072

手动安装K8s第六节:node节点部署-kubelet相关推荐

  1. 搭建K8S集群之node节点部署

    在上一篇文章中,我们完成了K8S系列之K8S集群之Master节点部署,在这篇文章中,我们将开始部署Node节点相关的组件.在node节点上,需要部署kubelet和kube-proxy两个K8S组件 ...

  2. ubuntu16 kubernetes1.6安装(六、node节点部署)

    节点启动顺序为:1.etcd 2.flannel 3.docker 4.kubelet 和kube-proxy,本文flannel未使用systemd部署,因此写成脚本添加到rc.local中去. 1 ...

  3. 手动安装K8s第三节:etcd集群部署

    手动安装K8s第三节:etcd集群部署 准备安装包 https://github.com/coreos/etcd 版本:3.2.18 wget https://github.com/coreos/et ...

  4. K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

    K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 文章目录 K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 1.Node节点资源不足可能会产生的故障 2.Node节点 ...

  5. K8S V1.23 安装--Kubeadm+contained+公网 IP 多节点部署

    简介 基于两台公网的服务器节点,两个服务器不再局域网内,只能通过公网 IP 相互访问,搭建 K8S 集群,并且按照 Dashboard,通过网页查看 K8S 相关的东西 环境及机器说明 两台机器,其中 ...

  6. ubuntu20.04手动安装Openstack YOGA版本(双节点)

    目录 想说的话 双节点手动安装openstack yoga版本 环境准备 网络配置 hostname解析 测试网络连通性 NTP时间同步 所有节点安装openstack包 controller节点安装 ...

  7. k8s集群之master节点部署

    apiserver的部署 api-server的部署脚本 [root@mast-1 k8s]# cat apiserver.sh #!/bin/bashMASTER_ADDRESS=$1 主节点IP ...

  8. kubernetes单Master集群部署--Node节点部署组件(6)

    1.kubelet组件授权 Master apiserver启用TLS认证后,Node节点kubelet组件想要加入集群,必须使用CA签发的有效证书才能与apiserver通信,当Node节点很多时, ...

  9. 循序渐进的手动安装k8s笔记-3

    在上一篇笔记中,我们已经可以使用 k8s1.6 版本搭建一个基础的集群,在集群内部可以完成不同 node 之间的 pod 互通并且可以完成服务发现.但已经完成的这个集群仍然是通过不安全的 8080 端 ...

最新文章

  1. 德州农工大学 计算机排名,德州农工大学美国大学排名及专业排名汇总(USNEWS美国大学排名版)...
  2. 【剑指offer-Java版】30最小的K个数
  3. 解决pycharm创建github工程但push失败的问题
  4. android 默认开关,android默认设置的开关
  5. 包含对流环热,热流边界,等温边界的稳态热传导方程的FEM求解。
  6. 语音识别(1)---语音识别(ASR)评估指标-WER(字错误率)和SER(句错误率)
  7. Array为什么这样会有错?
  8. python爬虫requests库_python爬虫使用Requests库 - pytorch中文网
  9. windows server2012 domain user权限配置
  10. 博客排名400-300的数据变化
  11. java计算机毕业设计进出货管理系统MyBatis+系统+LW文档+源码+调试部署
  12. C语言学习-翁凯(第十三章笔记)
  13. 【韵律迁移】Robust and fine-grained prosody control of end-to-end speech synthesis
  14. 小牛电动为何沉迷于打造“社区文化”?
  15. 树莓派SPI连接TFT屏幕
  16. 用go来做图像相似性比较
  17. Use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for com
  18. SDY2205使用说明书
  19. Linux:Lilo 设定档 /etc/lilo.conf
  20. 视频号怎么运营,如何快速玩转微信视频号:国仁楠哥

热门文章

  1. 高性能mysql主存架构
  2. jQuery中终止Ajax请求
  3. 图像五值化与基于三值图像的车牌识别(1)
  4. SharePoint判断页面(或WebPart)是否处于编辑模式.
  5. 获取GridView隐藏列值
  6. 请允许我悄悄的爱你一次好吗 zz
  7. Ubuntu 取消 Apache及MySQL等自启动
  8. 速查笔记(Linux Shell编程上)
  9. REST API URI 设计的七准则
  10. K:hash(哈希)碰撞攻击