k8s学习整理-二进制安装kubernetes

近期通过网课学习了李振良老师kubernetes教程。根据老师的课堂内容笔记做了相关的整理,以便于加深理解和后期自查

准备工作

  • 部署路径

    • k8s路径: /opt/kubernetes/{node,server}
    • 证书: /opt/ssl
    • cni插件: /opt/cni
  • 下载整理的物料: git clone git@github.com:coolboyweizi/kubernetes-binary.git

    • 主要目录文件夹说明
      • bin: server或node二进制包
      • config: 相关服务的配置文件
      • service: 相关服务启动脚本
      • logs: 日志文件
  • 官网下载kubernetes的server、node二进制包

服务器节点

  • 服务器采用三台部署
主机名IP说明
m1192.168.199.11etcd,k8s-master
n1192.168.199.12etcd,k8s-node
n2192.168.199.13etcd,k8s-node

证书与etcd服务

生成kube-apiserver、kube-proxy、etcd证书

  • 修改script/ssl.sh中etcd、kube-api认证的服务器IP。
  • 执行shell脚本,证书自动生成到/opt/ssl下,赋权限644
  • 分发证书文件到相关的服务器

启动etcd服务

  • 推送script/etcd-install.sh到etcd服务器。并执行

server 端部署

启动前准备

  • 修改配置文件: /opt/kubernetes/server/config/kube-apiserver.conf
    • $MASTER: master的IP
    • $ETCD[1-3]: 3台etcd的IP
  • 创建日志目录: mkdir -p /opt/kubernetes/server/logs

启动并检测服务

for i in `ls /opt/kubernetes/server/service`;do systemctl restart $i;done
for i in `ls /opt/kubernetes/server/service`;do systemctl status $i;done
for i in `ls /opt/kubernetes/server/service`;do systemctl enable $i;done

账户授权

kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

node 端部署

启动前准备

  • 修改配置文件: /opt/kubernetes/node/config
    • kubelet.conf: $NODE 节点名称
    • kube-proxy.yml: $NODE 节点名称
  • 安装并启动docker
  • 创建日志目录: mkdir -p /opt/kubernetes/node/logs

启动并检测服务

for i in `ls /opt/kubernetes/node/service`;do systemctl restart $i;done
for i in `ls /opt/kubernetes/node/service`;do systemctl status $i;done
for i in `ls /opt/kubernetes/node/service`;do systemctl enable $i;done

k8s-server认证

# 检查未认证节点
kubectl get csr
for i in `kubectl get csr | grep -v 'NAME' |awk '{print $1}'`;do kubectl certificate approve $i;done   

安装flannel 与 coreDNS

flannel

  • shell: kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

coredns

  • 下载https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/coredns/coredns.yaml.sed
  • 替换文件中相关变量。确定文配置指向
    • $DNS_SERVER_IP: 10.0.0.2
      • node/kubelet-config.yml: clusterDNS
    • $DNS_DOMAIN: cluster.local
      • node/kubelet-config.yml: clusterDomain
    • image: coredns/coredns:x.x
      • 修改coredns镜像地址
  • shell: kubectl create -f coredns.yaml
  • pod运行失败:
    • 相关服务器更改规则: iptables -P FORWARD ACCEPT

部署检测

kubectl run busybox --rm=true --image=busybox --restart=Never -it
nslookup kubernetes # 返回10.0.0.1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值