k8s搭建随记

本文详细介绍基于k8s1.4.6版本的Kubernetes集群搭建过程,包括etcd直接启动、各组件如kube-apiserver、kube-controller-manager、kube-scheduler、kubelet和kube-proxy的配置方法。探讨了防火墙策略、网络配置、master和node的启动流程,以及skydns、dashboard等关键组件的部署。此外,还讨论了控制器管理、etcd集群、pod滚动升级等进阶话题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于k8s 1.4.6
./etcd 直接启动
 ./kube-apiserver --etcd-servers=http://127.0.0.1:2379 --service-cluster-ip-range=169.169.0.0/16
 ./kube-controller-manager --master=http://127.0.0.1:8080
 ./kube-scheduler --master=http://127.0.0.1:8080
 ./kubelet --api-servers=http://127.0.0.1:8080
  ./kube-proxy --master=http://127.0.0.1:8080
  
  gcr.io报错处理
  
  从docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.0
  
  docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.0 gcr.io/google_containers/pause-amd64:3.0
  
  
  放网上的防火墙策略,局域网关掉防火墙 ufw disable
  
  1.4.11 Namespace
  
  2.1集群安装核心章节
  
  2.5.4 sevice skydns
  
  
  
  三机集群:
 版本: k8s 1.4.6   etcd3.3.13  docker 18.06.3
 为什么重启机器后都要执行下防火墙关闭ufw disable?即使上次开机时已经执行过ufw disable,开机脚本在/lib/systemd/system中的ufw.service
  ufw disable
  [sudo] password for vz: 
  Firewall stopped and disabled on system startup
  环境:227 10.1.10.1 228 10.1.20.1 229 10.1.30.1
 227: route add -net 10.1.20.0 netmask 255.255.255.0 gw 192.168.120.228
      route add -net 10.1.30.0 netmask 255.255.255.0 gw 192.168.120.229
  
  1.网络以直接路由方式 指定docker0的ip,加路由,  最后RP用quagaga 2.1.7章节  router.rar ; docker run -itd --name=router-xxxx --privileged --net=host   index.alauda.cn/georce/router
  
  3.启动master 227 (10.10.10.1) etcd(开机启动注意脚本中涉及的目录要先有才行) ,kube-apiserver(--admisso_tool先不要),kube-contrller-manager,kube-scheduler
  
  2.skydns 2.5.4章节 228 作为skydns 固定ip 169.169.0.100   googlecontainer/etcd:2.0.9  googlecontainer/kube2sky:1.11 googlecontainer/skydns:2015-03-11-001   ingress:  googlecontainer/nginx-ingress:0.1
  
  3.启动node 在node kubelet启动中加入 --cluster_dns=169.169.0.100 --cluster_domain=kube.local 
  重新启动机器后,skydns会飘移到228,而不会只在227上,开机只会加载create 了的xx.yaml
  要重新启动,才会看k8s操作docker下载的映像
  最好先启动master和一个node,排除错误在启动其他的Node, domain=kube.local 如果配置弄错了,飘移到其他机器上怎么办?用master 的kubectl delete -f xx.yaml等机器重启后再kubectl create -f xx.yaml看效果
  kubectl必须放在master上执行?
  kubectl logs pod_name -c container_name
  master上只会部署kube-apiserver,kube-contrller-manager,kube-scheduler,除非用户自己部署的,而非k8s调度的
  
  4. dashboard 
 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.4.0/src/deploy/kubernetes-dashboard.yaml
 注意修改args为对应的- --api-server的地址,不要改namspace,image改为siriuszg/kubernetes-dashboard-amd64:v1.4.2
  访问为:192.168.120.227:8080/ui
  
  
  进阶:1. controller-manager controllermanager.go:474] Failed to start certificate controller: open /etc/kubernetes/ca/ca.pem: no such file or directory 
        2. etcd为什么不用docker版本?
        3.apiserver涉及到的addon插件们
        4.可以在node上用kubectl,但要指定master?
        5.各种插件
        6.etcd集群?
        7.pod滚动升级 rolling-update
        8.阿里用的是pod就地启动?方便外部调用服务?外部怎么知道飘移到哪里去了?不用,写一个固定ip,ip中访问的是域名,用的是skydns来解析即可
  
 ubuntu service Type:
Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。
Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。
Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes使得systemd在服务进程退出之后仍然认为服务处于激活状态
Type=notify:与 Type=simple相同,但约定服务会在就绪后向systemd发送一个信号。这一通知的实现由 libsystemd-daemon.so提供。
Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

  
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doodoocoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值