上篇 http://echochio.pixnet.net/blog/post/44857027
繼續裝Kubelet .....
可參考我的 git .......https://github.com/echochio-tw/CoreOS-Kubelet-Script
抓 git 最快 ....跑 script 就裝好了
下面就詳述如何安裝的 ......
抓 kubectl
先看最新版本 用瀏覽器看 https://github.com/kubernetes/kubernetes/releases
現在是 1.6.0 .....不要抓 bata 版 .....
抓檔案 ...放到 /opt/bin ....三台都做
coreos1 ~ # mkdir /opt coreos1 ~ # mkdir /opt/bin coreos1 ~ # cd /opt/bin coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kube-proxy coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/e2e coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kube-apiserver coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kubecfg coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kubelet coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/integration coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kube-controller-manager coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kubectl coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kubernetes coreos1 bin # curl -O https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/kube-scheduler coreos1 bin # chmod +x * coreos1 bin # ls -l total 615300 -rwxr-xr-x. 1 root root 127 Mar 30 11:09 e2e -rwxr-xr-x. 1 root root 127 Mar 30 11:11 integration -rwxr-xr-x. 1 root root 149384995 Mar 30 11:10 kube-apiserver -rwxr-xr-x. 1 root root 131606504 Mar 30 11:12 kube-controller-manager -rwxr-xr-x. 1 root root 64016146 Mar 30 11:09 kube-proxy -rwxr-xr-x. 1 root root 75637793 Mar 30 13:40 kube-scheduler -rwxr-xr-x. 1 root root 127 Mar 30 11:10 kubecfg -rwxr-xr-x. 1 root root 70704507 Mar 30 11:12 kubectl -rwxr-xr-x. 1 root root 138647424 Mar 30 11:11 kubelet -rwxr-xr-x. 1 root root 127 Mar 30 11:12 kubernetes
master 要有這些 service :
apiserver.service
controller-manager.service
node 要有這些 service :
scheduler.service
proxy.service
kubelet.service
先做 apiserver.service
檔案 /etc/systemd/system/apiserver.service
[Unit] Description=Kubernetes API Server After=etcd2.service After=docker.service Wants=etcd2.service Wants=docker.service [Service] ExecStart=/opt/bin/kube-apiserver \ --insecure-bind-address=192.168.0.69 \ --insecure-port=8080 \ --etcd_servers=http://192.168.0.69:2379,http://192.168.0.70:2369,http://192.168.0.71:2369 \ --service-cluster-ip-range=172.17.0.0/16 \ --admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota \ --anonymous-auth=false \ --storage-backend=etcd2 \ --logtostderr=true ExecStartPost=-/bin/bash -c "until /usr/bin/curl http://192.168.0.69:8080; do echo \"waiting for API server to come online...\"; sleep 3; done" Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
開啟 apiserver.service 及查看服務
coreos1 bin # systemctl daemon-reload coreos1 bin # systemctl start apiserver.service coreos1 bin # systemctl enable apiserver.service Created symlink /etc/systemd/system/multi-user.target.wants/apiserver.service → /etc/systemd/system/apiserver.service. coreos1 bin # systemctl status apiserver.service ● apiserver.service - Kubernetes API Server Loaded: loaded (/etc/systemd/system/apiserver.service; static; vendor preset: disabled) Active: activating (start-post) since Thu 2017-03-30 11:40:20 CST; 2s ago Main PID: 2681 (kube-apiserver); Control PID: 2682 (bash) Tasks: 11 Memory: 469.2M CPU: 1.656s CGroup: /system.slice/apiserver.service ├─2681 /opt/bin/kube-apiserver --insecure-bind-address=192.168.0.69 --insecure-port=8080 --etcd_servers=http://127.0.0.1:2379 --service-cluster-ip-range=172.17.0.0/16 --logtostderr=true └─control ├─2682 /bin/bash -c until /usr/bin/curl http://192.168.0.69:8080; do echo "waiting for API server to come online..."; sleep 3; done └─2699 sleep 3 Mar 30 11:40:21 coreos1 bash[2682]: % Total % Received % Xferd Average Speed Time Time Time Current Mar 30 11:40:21 coreos1 bash[2682]: Dload Upload Total Spent Left Speed Mar 30 11:40:21 coreos1 bash[2682]: [152B blob data] Mar 30 11:40:21 coreos1 bash[2682]: waiting for API server to come online... Mar 30 11:40:21 coreos1 kube-apiserver[2681]: W0330 11:40:21.255026 2681 authentication.go:362] AnonymousAuth is not allowed with the AllowAll authorizer. Resetting AnonymousAuth to false. You should Mar 30 11:40:21 coreos1 kube-apiserver[2681]: E0330 11:40:21.604295 2681 reflector.go:201] k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:70: Failed to list *api. Mar 30 11:40:21 coreos1 kube-apiserver[2681]: [restful] 2017/03/30 11:40:21 log.go:30: [restful/swagger] listing is available at https://192.168.0.69:6443/swaggerapi/ Mar 30 11:40:21 coreos1 kube-apiserver[2681]: [restful] 2017/03/30 11:40:21 log.go:30: [restful/swagger] https://192.168.0.69:6443/swaggerui/ is mapped to folder /swagger-ui/ Mar 30 11:40:21 coreos1 kube-apiserver[2681]: I0330 11:40:21.692867 2681 serve.go:79] Serving securely on 0.0.0.0:6443 Mar 30 11:40:21 coreos1 kube-apiserver[2681]: I0330 11:40:21.692957 2681 serve.go:94] Serving insecurely on 192.168.0.69:8080 coreos1 bin # netstat -natp |grep 8080 tcp 0 0 192.168.0.69:8080 0.0.0.0:* LISTEN 2576/kube-apiserver tcp 0 0 192.168.0.69:45314 192.168.0.69:8080 TIME_WAIT -
裝 kube-controller
檔案 /etc/systemd/system/controller-manager.service
[Unit] Description=Kubernetes Controller Manager After=etcd2.service After=docker.service After=apiserver.service Wants=etcd2.service Wants=docker.service Wants=apiserver.service [Service] ExecStart=/opt/bin/kube-controller-manager \ --master=http://192.168.0.69:8080 \ Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
開啟 kube-controller 及查看服務
coreos1 bin # systemctl daemon-reload coreos1 bin # systemctl start controller-manager.service coreos1 bin # netstat -natp |grep kube-contro tcp 0 0 192.168.0.69:60748 192.168.0.69:8080 ESTABLISHED 3645/kube-controlle tcp6 0 0 :::10252 :::* LISTEN 3645/kube-controlle coreos1 bin # systemctl enable controller-manager.service Created symlink /etc/systemd/system/multi-user.target.wants/controller-manager.service → /etc/systemd/system/controller-manager.service. coreos1 bin #
裝 kube-scheduler
編譯 /etc/systemd/system/scheduler.service
[Unit] Description=Kubernetes Scheduler After=etcd2.service After=docker.service Wants=etcd2.service Wants=docker.service [Service] ExecStart=/opt/bin/kube-scheduler --master=192.168.0.69:8080 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
啟動 Scheduler
coreos1 ~ # systemctl enable scheduler.service Created symlink /etc/systemd/system/multi-user.target.wants/scheduler.service → /etc/systemd/system/scheduler.service. coreos1 ~ # systemctl start scheduler.service coreos1 ~ # systemctl status scheduler.service ● scheduler.service - Kubernetes Scheduler Loaded: loaded (/etc/systemd/system/scheduler.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2017-03-30 13:45:42 CST; 6s ago Main PID: 5208 (kube-scheduler) Tasks: 7 Memory: 7.2M CPU: 83ms CGroup: /system.slice/scheduler.service └─5208 /opt/bin/kube-scheduler --master=192.168.0.69:8080 Mar 30 13:45:42 coreos1 systemd[1]: Started Kubernetes Scheduler. Mar 30 13:45:42 coreos1 kube-scheduler[5208]: I0330 13:45:42.600891 5208 leaderelection.go:179] attempting to acquire leader lease...
裝 kube-proxy
編譯 /etc/systemd/system/proxy.service
[Unit] Description=Kubernetes proxy server After=etcd2.service After=docker.service Wants=etcd2.service Wants=docker.service [Service] ExecStart=/opt/bin/kube-proxy --master=http://192.168.0.69:8080 --logtostderr=true Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
啟動 proxy
coreos1 ~ # systemctl daemon-reload coreos1 ~ # systemctl start proxy.service coreos1 ~ # systemctl status proxy.service ● proxy.service - Kubernetes proxy server Loaded: loaded (/etc/systemd/system/proxy.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2017-03-30 13:56:02 CST; 14s ago Main PID: 5453 (kube-proxy) Tasks: 7 Memory: 7.9M CPU: 118ms CGroup: /system.slice/proxy.service └─5453 /opt/bin/kube-proxy --master=http://192.168.0.69:8080 --logtostderr=true Mar 30 13:56:02 coreos1 systemd[1]: Started Kubernetes proxy server. Mar 30 13:56:02 coreos1 kube-proxy[5453]: I0330 13:56:02.715442 5453 server.go:225] Using iptables Proxier. coreos1 ~ # systemctl enable proxy.service Created symlink /etc/systemd/system/multi-user.target.wants/proxy.service → /etc/systemd/system/proxy.service. coreos1 ~ # netstat -natp |grep kube-proxy tcp 0 0 192.168.0.69:42648 192.168.0.69:8080 ESTABLISHED 5453/kube-proxy tcp 0 0 192.168.0.69:42646 192.168.0.69:8080 ESTABLISHED 5453/kube-proxy
裝 kubelet.service
編譯 /etc/systemd/system/kubelet.service
[Unit] Description=Kubernetes Kubelet After=etcd2.service After=docker.service After=scheduler.service After=proxy.service Wants=etcd2.service Wants=docker.service Wants=scheduler.service Wants=proxy.service [Service] EnvironmentFile=/etc/environment ExecStart=/opt/bin/kubelet \ --api-servers=http://192.168.0.69:8080 \ --pod-manifest-path=/etc/kubernetes/manifests \ --logtostderr=true Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
啟動 kubelet.service
coreos1 ~ # systemctl daemon-reload coreos1 ~ # systemctl enable kubelet.service coreos1 ~ # systemctl start kubelet.service coreos1 ~ # systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2017-03-30 17:15:32 CST; 26s ago Main PID: 12219 (kubelet) Tasks: 16 Memory: 42.2M CPU: 1.145s CGroup: /system.slice/kubelet.service ├─12219 /opt/bin/kubelet --api-servers=http://192.168.0.69:8080 --pod-manifest-path=/etc/kubernetes/manifests --logtostderr=true └─12272 journalctl -k -f Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.230130 12219 factory.go:54] Registering systemd factory Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.230708 12219 factory.go:86] Registering Raw factory Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.238602 12219 manager.go:1106] Started watching for new ooms in manager Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.248375 12219 oomparser.go:185] oomparser using systemd Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.249794 12219 manager.go:288] Starting recovery of all containers Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.324436 12219 kubelet_node_status.go:230] Setting node annotation to enable volume controller attach/detach Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.325833 12219 kubelet_node_status.go:77] Attempting to register node coreos1 Mar 30 17:15:33 coreos1 kubelet[12219]: I0330 17:15:33.381056 12219 manager.go:293] Recovery completed Mar 30 17:15:34 coreos1 kubelet[12219]: I0330 17:15:34.223386 12219 kubelet_node_status.go:128] Node coreos1 was previously registered Mar 30 17:15:34 coreos1 kubelet[12219]: I0330 17:15:34.223420 12219 kubelet_node_status.go:80] Successfully registered node coreos1
上線可看到
三個 node 都加上 kubelet.
如果無法用 /opt/bin/kubectl ...要改檔案 ~/.kube/config 內容是
apiVersion: v1 clusters: - cluster: server: http://192.168.0.69:8080 name: default-cluster contexts: - context: cluster: default-cluster user: default-admin name: default-system current-context: default-system kind: Config preferences: {} users: - name: default-admin user: {}