基于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认为服务就绪。