Kubernetes自举启动流程
自举流程默认etcd集群可用;node节点上flanneld、kube-proxy、kubelet进程可用且配置合理(在ubuntu环境中包括init、init.d和default文件下的配置),如果多节点导入费时费力可先正常安装一遍kubernetes,再将管理节点上的进程杀掉。
注:下文中绿色字体字段需要根据实际情况来配置
step1 -- 默认etcd可用,导入网络配置和默认namespace(kube-system)
etcdctlmk /coreos.com/network/config "{\"Network\":\"172.16.0.0/16\",\"Backend\": {\"Type\": \"vxlan\"}}"
etcdctlmk /registry/namespaces/kube-system"{\"kind\":\"Namespace\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"kube-system\",\"uid\":\"c1b3d1a1-5329-11e6-82f2-fa163ec7e7b3\",\"creationTimestamp\":\"2016-07-26T12:09:08Z\"},\"spec\":{\"finalizers\":[\"kubernetes\"]},\"status\":{\"phase\":\"Active\"}}"
注:该步骤只为得到etcd中/registry、/coreos.com/network/config、/coreos.com/network/subnets数据和文件夹结构,如果环境之前部署过kubernetes,该步骤可以省略。
step2 --先启动apiserver和controller-manager,这两个进程启动后会根据相应的配置在etcd中生成默认数据(包括节点信息和秘钥信息),再启动flanneld,与此同时kube-proxy和kubelet会跟着启动,启动命令如下:
exportINSECURE_PORT=${INSECURE_PORT:-8080}
exportETCD_SERVER=${ETCD_SERVER:-"http://127.0.0.1:4001"}
exportCLUSTER_IP_RANGE=${CLUSTER_IP_RANGE:-"192.168.1.0/24"}
exportNODEPORT_RANGE=${NODEPORT_RANGE:-"30000-32767"}
exportADVERTISE_ADDRESS=${ADVERTISE_ADDRESS:-"127.0.0.1"}
exportADDMISSION_CONTROL=${ADDMISSION_CONTROL:-"NamespaceLifecycle,LimitRanger,ResourceQuota,SecurityContextDeny"}
sudodocker run -d \
-eINSECURE_PORT=$INSECURE_PORT \
-eETCD_SERVER=$ETCD_SERVER \
-eCLUSTER_IP_RANGE=$CLUSTER_IP_RANGE \
-eNODEPORT_RANGE=$NODEPORT_RANGE \
-eADVERTISE_ADDRESS=$ADVERTISE_ADDRESS \
-eADDMISSION_CONTROL=$ADDMISSION_CONTROL \
--net=host \
--pid=host \
--privileged \
--restart=always \
10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4
MASTER_URL=${MASTER_URL:-127.0.0.1:8080}
sudodocker run -d -e MASTER_URL=$MASTER_URL \
--net=host \
--pid=host \
--restart=always\
10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4
注:该步骤只为得到etcd中minions、secret数据,如果环境之前配置过kubernetes,该步骤可以省略。
service flanneld start
注:启动flanneld后,kube-proxy和kubelet也会跟着启动,通过etcdctlls –recursive 命令不停的查询,一直到etcd中生成minions信息后再执行下一步。
step3 ---确认step2会在etcd中生成minions、secret信息,然后停掉kubelet,杀掉api-server和controller-manager
servicekubelet stop
dockerps
dockerrm -f 8f8de8a63d07 a57b08b55715(依据实际情况)
step4 --- 启动自举进程
启动apiserver
启动apiserver的pause进程
dockerrun -d \
--label="io.kubernetes.container.hash"="5b5e0666"\
--label="io.kubernetes.container.name"="POD"\
--label="io.kubernetes.container.restartCount"="0"\
--label="io.kubernetes.container.terminationMessagePath"=""\
--label="io.kubernetes.pod.name"="apiserver-4uhfg"\
--label="io.kubernetes.pod.namespace"="kube-system"\
--label="io.kubernetes.pod.terminationGracePeriod"="30"\
--label="io.kubernetes.pod.uid"="535e0961-5489-11e6-9e6f-fa163ec5d0dc"\
--name=k8s_POD.5b5e0666_apiserver-4uhfg_kube-system_535e0961-5489-11e6-9e6f-fa163ec5d0dc_d629380f10.158.246.131:5000/gcr.io/google_containers/pause:2.0
启动apiserver进程
exportINSECURE_PORT=${INSECURE_PORT:-8080}
exportETCD_SERVER=${ETCD_SERVER:-"http://127.0.0.1:4001"}
exportCLUSTER_IP_RANGE=${CLUSTER_IP_RANGE:-"192.168.1.0/24"}
exportNODEPORT_RANGE=${NODEPORT_RANGE:-"30000-32767"}
exportADVERTISE_ADDRESS=${ADVERTISE_ADDRESS:-"127.0.0.1"}
exportADDMISSION_CONTROL=${ADDMISSION_CONTROL:-"NamespaceLifecycle,LimitRanger,ResourceQuota,SecurityContextDeny"}
sudodocker run -d \
-eINSECURE_PORT=$INSECURE_PORT \
-eETCD_SERVER=$ETCD_SERVER \
-eCLUSTER_IP_RANGE=$CLUSTER_IP_RANGE \
-eNODEPORT_RANGE=$NODEPORT_RANGE \
-eADVERTISE_ADDRESS=$ADVERTISE_ADDRESS \
-eADDMISSION_CONTROL=$ADDMISSION_CONTROL \
--net=host \
--pid=host \
--privileged \
--restart=always \
--label="io.kubernetes.container.hash"="85a9307f"\
--label="io.kubernetes.container.name"="apiserver"\
--label="io.kubernetes.container.restartCount"="0"\
--label="io.kubernetes.container.terminationMessagePath"=""\
--label="io.kubernetes.pod.name"="apiserver-4uhfg"\
--label="io.kubernetes.pod.namespace"="kube-system"\
--label="io.kubernetes.pod.terminationGracePeriod"="30"\
--label="io.kubernetes.pod.uid"="535e0961-5489-11e6-9e6f-fa163ec5d0dc"\
--name=k8s_apiserver.85a9307f_apiserver-4uhfg_kube-system_535e0961-5489-11e6-9e6f-fa163ec5d0dc_38b27b46\
10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4
进程启动成功后会给出相应的docker容器ID,通过下面命令获取kube-system的token名称,如下:
etcdctlls --recursive | grep token
/registry/secrets/kube-system/default-token-2nlts
/registry/secrets/default/default-token-q8v2j
修改pod配置文件,将docker的容器ID和token(default-token-2nlts)对应修改,然后存入etcd,配置如下:
etcdctlmk /registry/pods/kube-system/apiserver-4uhfg "{\"kind\":\"Pod\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"apiserver-4uhfg\",\"generateName\":\"apiserver-\",\"namespace\":\"kube-system\",\"selfLink\":\"/api/v1/namespaces/kube-system/pods/apiserver-4uhfg\",\"uid\":\"535e0961-5489-11e6-9e6f-fa163ec5d0dc\",\"creationTimestamp\":\"2016-07-28T06:05:46Z\",\"labels\":{\"k8s-app\":\"apiserver\"},\"annotations\":{\"kubernetes.io/created-by\":\"{\\\"kind\\\":\\\"SerializedReference\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"reference\\\":{\\\"kind\\\":\\\"ReplicationController\\\",\\\"namespace\\\":\\\"kube-system\\\",\\\"name\\\":\\\"apiserver\\\",\\\"uid\\\":\\\"535cbe33-5489-11e6-9e6f-fa163ec5d0dc\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"resourceVersion\\\":\\\"2608\\\"}}\n\"}},\"spec\":{\"volumes\":[{\"name\":\"default-token-2nlts\",\"secret\":{\"secretName\":\"default-token-2nlts\"}}],\"containers\":[{\"name\":\"apiserver\",\"image\":\"10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4\",\"ports\":[{\"name\":\"apiserver\",\"hostPort\":8080,\"containerPort\":8080,\"protocol\":\"TCP\"}],\"env\":[{\"name\":\"INSECURE_PORT\",\"value\":\"8080\"},{\"name\":\"ETCD_SERVER\",\"value\":\"http://127.0.0.1:4001\"},{\"name\":\"CLUSTER_IP_RANGE\",\"value\":\"192.168.1.0/24\"},{\"name\":\"NODEPORT_RANGE\",\"value\":\"30000-32767\"},{\"name\":\"ADVERTISE_ADDRESS\",\"value\":\"127.0.0.1\"},{\"name\":\"ADDMISSION_CONTROL\",\"value\":\"NamespaceLifecycle,LimitRanger,ResourceQuota,SecurityContextDeny\"}],\"resources\":{},\"volumeMounts\":[{\"name\":\"default-token-2nlts\",\"readOnly\":true,\"mountPath\":\"/var/run/secrets/kubernetes.io/serviceaccount\"}],\"terminationMessagePath\":\"/dev/termination-log\",\"imagePullPolicy\":\"IfNotPresent\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"serviceAccountName\":\"default\",\"serviceAccount\":\"default\",\"nodeName\":\"10.158.246.133\",\"hostNetwork\":true,\"hostPID\":true,\"securityContext\":{}},\"status\":{\"phase\":\"Running\",\"conditions\":[{\"type\":\"Ready\",\"status\":\"True\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2016-07-28T06:07:57Z\"}],\"hostIP\":\"10.158.246.133\",\"podIP\":\"10.158.246.133\",\"startTime\":\"2016-07-28T06:05:43Z\",\"containerStatuses\":[{\"name\":\"apiserver\",\"state\":{\"running\":{\"startedAt\":\"2016-07-28T06:05:46Z\"}},\"lastState\":{},\"ready\":true,\"restartCount\":0,\"image\":\"10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4\",\"imageID\":\"docker://sha256:647fb89ad0dfe93515590f0f15da8f257eb37ae9dced1ef19ca5c1c378f4859b\",\"containerID\":\"docker://9c9c3e3d0120b51152af59eaec4d9345d13caedd803b825fb39742f68796bb0e\"}]}}"
注:绿色字段需要根据实际情况进行修改。Token:3处,宿主ip:3处,docker容器ip:1处,镜像版本:3处。
修改rc配置文件并存入etcd,配置如下:
etcdctlmk /registry/controllers/kube-system/apiserver"{\"kind\":\"ReplicationController\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"apiserver\",\"namespace\":\"kube-system\",\"selfLink\":\"/api/v1/namespaces/kube-system/replicationcontrollers/apiserver\",\"uid\":\"535cbe33-5489-11e6-9e6f-fa163ec5d0dc\",\"generation\":1,\"creationTimestamp\":\"2016-07-28T06:05:46Z\",\"labels\":{\"k8s-app\":\"apiserver\"}},\"spec\":{\"replicas\":1,\"selector\":{\"k8s-app\":\"apiserver\"},\"template\":{\"metadata\":{\"creationTimestamp\":null,\"labels\":{\"k8s-app\":\"apiserver\"}},\"spec\":{\"containers\":[{\"name\":\"apiserver\",\"image\":\"10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4\",\"ports\":[{\"name\":\"apiserver\",\"hostPort\":8080,\"containerPort\":8080,\"protocol\":\"TCP\"}],\"env\":[{\"name\":\"INSECURE_PORT\",\"value\":\"8080\"},{\"name\":\"ETCD_SERVER\",\"value\":\"http://127.0.0.1:4001\"},{\"name\":\"CLUSTER_IP_RANGE\",\"value\":\"192.168.1.0/24\"},{\"name\":\"NODEPORT_RANGE\",\"value\":\"30000-32767\"},{\"name\":\"ADVERTISE_ADDRESS\",\"value\":\"127.0.0.1\"},{\"name\":\"ADDMISSION_CONTROL\",\"value\":\"NamespaceLifecycle,LimitRanger,ResourceQuota,SecurityContextDeny\"}],\"resources\":{},\"terminationMessagePath\":\"/dev/termination-log\",\"imagePullPolicy\":\"IfNotPresent\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"hostNetwork\":true,\"hostPID\":true,\"securityContext\":{}}}},\"status\":{\"replicas\":1,\"fullyLabeledReplicas\":1,\"observedGeneration\":1}}"
启动scheduler
启动scheduler的pause进程
dockerrun -d \
--label="io.kubernetes.container.hash"="d3c004bd"\
--label="io.kubernetes.container.name"="POD"\
--label="io.kubernetes.container.restartCount"="0"\
--label="io.kubernetes.container.terminationMessagePath"=""\
--label="io.kubernetes.pod.name"="scheduler-hkdar"\
--label="io.kubernetes.pod.namespace"="kube-system"\
--label="io.kubernetes.pod.terminationGracePeriod"="30"\
--label="io.kubernetes.pod.uid"="4381f154-54be-11e6-9e6f-fa163ec5d0dc"\
--name=k8s_POD.d3c004bd_scheduler-hkdar_kube-system_4381f154-54be-11e6-9e6f-fa163ec5d0dc_38dda54310.158.246.131:5000/gcr.io/google_containers/pause:2.0
启动scheduler进程
MASTER_URL=${MASTER_URL:-127.0.0.1:8080}
sudodocker run -d -e MASTER_URL=$MASTER_URL \
--net=host \
--pid=host \
--restart=always\
--label="io.kubernetes.container.hash"="3a283f9f"\
--label="io.kubernetes.container.name"="scheduler"\
--label="io.kubernetes.container.restartCount"="0"\
--label="io.kubernetes.container.terminationMessagePath"=""\
--label="io.kubernetes.pod.name"="scheduler-hkdar"\
--label="io.kubernetes.pod.namespace"="kube-system"\
--label="io.kubernetes.pod.terminationGracePeriod"="30"\
--label="io.kubernetes.pod.uid"="4381f154-54be-11e6-9e6f-fa163ec5d0dc"\
--name=k8s_scheduler.3a283f9f_scheduler-hkdar_kube-system_4381f154-54be-11e6-9e6f-fa163ec5d0dc_607674e7\
10.158.246.131:5000/dtdream/kube-scheduler:v1.2.4
修改pod配置文件,将docker的容器ID和token对应修改,然后存入etcd,配置如下:
etcdctlmk /registry/pods/kube-system/scheduler-hkdar"{\"kind\":\"Pod\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"scheduler-hkdar\",\"generateName\":\"scheduler-\",\"namespace\":\"kube-system\",\"selfLink\":\"/api/v1/namespaces/kube-system/pods/scheduler-hkdar\",\"uid\":\"4381f154-54be-11e6-9e6f-fa163ec5d0dc\",\"creationTimestamp\":\"2016-07-28T12:24:43Z\",\"labels\":{\"k8s-app\":\"scheduler\"},\"annotations\":{\"kubernetes.io/created-by\":\"{\\\"kind\\\":\\\"SerializedReference\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"reference\\\":{\\\"kind\\\":\\\"ReplicationController\\\",\\\"namespace\\\":\\\"kube-system\\\",\\\"name\\\":\\\"scheduler\\\",\\\"uid\\\":\\\"43812018-54be-11e6-9e6f-fa163ec5d0dc\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"resourceVersion\\\":\\\"13848\\\"}}\n\"}},\"spec\":{\"volumes\":[{\"name\":\"default-token-2nlts\",\"secret\":{\"secretName\":\"default-token-2nlts\"}}],\"containers\":[{\"name\":\"scheduler\",\"image\":\"10.158.246.131:5000/dtdream/kube-scheduler:v1.2.4\",\"ports\":[{\"name\":\"scheduler\",\"hostPort\":10251,\"containerPort\":10251,\"protocol\":\"TCP\"}],\"env\":[{\"name\":\"MASTER_URL\",\"value\":\"127.0.0.1:8080\"}],\"resources\":{},\"volumeMounts\":[{\"name\":\"default-token-2nlts\",\"readOnly\":true,\"mountPath\":\"/var/run/secrets/kubernetes.io/serviceaccount\"}],\"terminationMessagePath\":\"/dev/termination-log\",\"imagePullPolicy\":\"IfNotPresent\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"serviceAccountName\":\"default\",\"serviceAccount\":\"default\",\"nodeName\":\"10.158.246.133\",\"hostNetwork\":true,\"hostPID\":true,\"securityContext\":{}},\"status\":{\"phase\":\"Running\",\"conditions\":[{\"type\":\"Ready\",\"status\":\"True\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2016-07-28T12:24:49Z\"}],\"hostIP\":\"10.158.246.133\",\"podIP\":\"10.158.246.133\",\"startTime\":\"2016-07-28T12:24:39Z\",\"containerStatuses\":[{\"name\":\"scheduler\",\"state\":{\"running\":{\"startedAt\":\"2016-07-28T12:24:48Z\"}},\"lastState\":{},\"ready\":true,\"restartCount\":0,\"image\":\"10.158.246.131:5000/dtdream/kube-scheduler:v1.2.4\",\"imageID\":\"docker://sha256:cd437714d8037d10e371ffe48a7861cfdff6b45c1bbb6f40641eceb6363f6193\",\"containerID\":\"docker://df43183549a06d357499124361463574afd6f54890b2374c26a87febee1c5261\"}]}}"
注:绿色字段需要根据实际情况进行修改。Token:3处,宿主ip:3处,docker容器ip:1处,镜像版本:3处。
修改rc配置文件并存入etcd,配置如下:
etcdctlmk /registry/controllers/kube-system/scheduler"{\"kind\":\"ReplicationController\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"scheduler\",\"namespace\":\"kube-system\",\"selfLink\":\"/api/v1/namespaces/kube-system/replicationcontrollers/scheduler\",\"uid\":\"43812018-54be-11e6-9e6f-fa163ec5d0dc\",\"generation\":1,\"creationTimestamp\":\"2016-07-28T12:24:43Z\",\"labels\":{\"k8s-app\":\"scheduler\"}},\"spec\":{\"replicas\":1,\"selector\":{\"k8s-app\":\"scheduler\"},\"template\":{\"metadata\":{\"creationTimestamp\":null,\"labels\":{\"k8s-app\":\"scheduler\"}},\"spec\":{\"containers\":[{\"name\":\"scheduler\",\"image\":\"10.158.246.131:5000/dtdream/kube-scheduler:v1.2.4\",\"ports\":[{\"name\":\"scheduler\",\"hostPort\":10251,\"containerPort\":10251,\"protocol\":\"TCP\"}],\"env\":[{\"name\":\"MASTER_URL\",\"value\":\"127.0.0.1:8080\"}],\"resources\":{},\"terminationMessagePath\":\"/dev/termination-log\",\"imagePullPolicy\":\"IfNotPresent\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"hostNetwork\":true,\"hostPID\":true,\"securityContext\":{}}}},\"status\":{\"replicas\":1,\"fullyLabeledReplicas\":1,\"observedGeneration\":1}}"
启动controller
启动controller的pause进程
dockerrun -d \
--label="io.kubernetes.container.hash"="263c87f4"\
--label="io.kubernetes.container.name"="POD"\
--label="io.kubernetes.container.restartCount"="0"\
--label="io.kubernetes.container.terminationMessagePath"=""\
--label="io.kubernetes.pod.name"="controller-zg7oj"\
--label="io.kubernetes.pod.namespace"="kube-system"\
--label="io.kubernetes.pod.terminationGracePeriod"="30"\
--label="io.kubernetes.pod.uid"="487e4b46-54ba-11e6-9e6f-fa163ec5d0dc"\
--name=k8s_POD.263c87f4_controller-zg7oj_kube-system_487e4b46-54ba-11e6-9e6f-fa163ec5d0dc_607674e710.158.246.131:5000/gcr.io/google_containers/pause:2.0
启动controller进程
MASTER_URL=${MASTER_URL:-127.0.0.1:8080}
sudodocker run -d -e MASTER_URL=$MASTER_URL \
--net=host \
--pid=host \
--restart=always \
--label="io.kubernetes.container.hash"="7d6b5f70"\
--label="io.kubernetes.container.name"="controller"\
--label="io.kubernetes.container.restartCount"="0"\
--label="io.kubernetes.container.terminationMessagePath"=""\
--label="io.kubernetes.pod.name"="controller-zg7oj"\
--label="io.kubernetes.pod.namespace"="kube-system"\
--label="io.kubernetes.pod.terminationGracePeriod"="30"\
--label="io.kubernetes.pod.uid"="487e4b46-54ba-11e6-9e6f-fa163ec5d0dc"\
--name=k8s_controller.7d6b5f70_controller-zg7oj_kube-system_487e4b46-54ba-11e6-9e6f-fa163ec5d0dc_f11edc5a\
10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4
修改pod配置文件,将docker的容器ID和token对应修改,然后存入etcd,配置如下:
etcdctlmk /registry/pods/kube-system/controller-zg7oj"{\"kind\":\"Pod\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"controller-zg7oj\",\"generateName\":\"controller-\",\"namespace\":\"kube-system\",\"selfLink\":\"/api/v1/namespaces/kube-system/pods/controller-zg7oj\",\"uid\":\"487e4b46-54ba-11e6-9e6f-fa163ec5d0dc\",\"creationTimestamp\":\"2016-07-28T11:56:13Z\",\"labels\":{\"k8s-app\":\"controller\"},\"annotations\":{\"kubernetes.io/created-by\":\"{\\\"kind\\\":\\\"SerializedReference\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"reference\\\":{\\\"kind\\\":\\\"ReplicationController\\\",\\\"namespace\\\":\\\"kube-system\\\",\\\"name\\\":\\\"controller\\\",\\\"uid\\\":\\\"487d8121-54ba-11e6-9e6f-fa163ec5d0dc\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"resourceVersion\\\":\\\"12722\\\"}}\n\"}},\"spec\":{\"volumes\":[{\"name\":\"default-token-2nlts\",\"secret\":{\"secretName\":\"default-token-2nlts\"}}],\"containers\":[{\"name\":\"controller\",\"image\":\"10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4\",\"ports\":[{\"name\":\"controller\",\"hostPort\":10252,\"containerPort\":10252,\"protocol\":\"TCP\"}],\"env\":[{\"name\":\"MASTER_URL\",\"value\":\"127.0.0.1:8080\"}],\"resources\":{},\"volumeMounts\":[{\"name\":\"default-token-2nlts\",\"readOnly\":true,\"mountPath\":\"/var/run/secrets/kubernetes.io/serviceaccount\"}],\"terminationMessagePath\":\"/dev/termination-log\",\"imagePullPolicy\":\"IfNotPresent\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"serviceAccountName\":\"default\",\"serviceAccount\":\"default\",\"nodeName\":\"10.158.246.133\",\"hostNetwork\":true,\"hostPID\":true,\"securityContext\":{}},\"status\":{\"phase\":\"Running\",\"conditions\":[{\"type\":\"Ready\",\"status\":\"True\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2016-07-28T11:56:13Z\"}],\"hostIP\":\"10.158.246.133\",\"podIP\":\"10.158.246.133\",\"startTime\":\"2016-07-28T11:56:13Z\",\"containerStatuses\":[{\"name\":\"controller\",\"state\":{\"running\":{\"startedAt\":\"2016-07-28T11:56:16Z\"}},\"lastState\":{},\"ready\":true,\"restartCount\":0,\"image\":\"10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4\",\"imageID\":\"docker://sha256:fab33d01047992d601256f1ee663f30f3950fa3cca4a92f404c2803858f29c45\",\"containerID\":\"docker://56cd26442cc79d522f29bbb31e5b5370d77010c2473e4f323c422ba7a4a67669\"}]}}"
注:绿色字段需要根据实际情况进行修改。Token:3处,宿主ip:3处,docker容器ip:1处,镜像版本:3处。
修改rc配置文件并存入etcd,配置如下:
etcdctlmk /registry/controllers/kube-system/controller"{\"kind\":\"ReplicationController\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"controller\",\"namespace\":\"kube-system\",\"selfLink\":\"/api/v1/namespaces/kube-system/replicationcontrollers/controller\",\"uid\":\"487d8121-54ba-11e6-9e6f-fa163ec5d0dc\",\"generation\":1,\"creationTimestamp\":\"2016-07-28T11:56:13Z\",\"labels\":{\"k8s-app\":\"controller\"}},\"spec\":{\"replicas\":1,\"selector\":{\"k8s-app\":\"controller\"},\"template\":{\"metadata\":{\"creationTimestamp\":null,\"labels\":{\"k8s-app\":\"controller\"}},\"spec\":{\"containers\":[{\"name\":\"controller\",\"image\":\"10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4\",\"ports\":[{\"name\":\"controller\",\"hostPort\":10252,\"containerPort\":10252,\"protocol\":\"TCP\"}],\"env\":[{\"name\":\"MASTER_URL\",\"value\":\"127.0.0.1:8080\"}],\"resources\":{},\"terminationMessagePath\":\"/dev/termination-log\",\"imagePullPolicy\":\"IfNotPresent\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"hostNetwork\":true,\"hostPID\":true,\"securityContext\":{}}}},\"status\":{\"replicas\":1,\"fullyLabeledReplicas\":1,\"observedGeneration\":1}}"
step5 --查看docker状态,如果正常启动kubelet
稍等30秒,kubelet会根据etcd中的配置重启apiserver、controller-manager、scheduler,效果如下:
root@ubuntu:/opt/bin#docker ps -a
CONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES
35a73468ac7c 10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4 "/entrypoint.sh" 25 minutes ago Up 25 minutes k8s_ctl-manager.633a5df3_ctl-manger-zg7oj_kube-system_487e4b46-54ba-11e6-9e6f-fa163ec5d0dc_ccd412f3
17c5bb469a62 10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4 "/entrypoint.sh" 25 minutes ago Up 25 minutes k8s_kube-apiserver.b23e0bf1_kube-apiserver-4uhfg_kube-system_535e0961-5489-11e6-9e6f-fa163ec5d0dc_f28cab05
aa29f2c339b8 10.158.246.131:5000/dtdream/kube-scheduler:v1.2.4 "/entrypoint.sh" 25 minutes ago Up 25 minutes k8s_scheduler.b4d5594c_scheduler-hkdar_kube-system_4381f154-54be-11e6-9e6f-fa163ec5d0dc_4aec950c
9d073d3309b3 10.158.246.131:5000/gcr.io/google_containers/pause:2.0 "/pause" 25 minutes ago Up 25 minutes k8s_POD.8aa4e38a_ctl-manger-zg7oj_kube-system_487e4b46-54ba-11e6-9e6f-fa163ec5d0dc_f03384c3
98f4222d972c 10.158.246.131:5000/gcr.io/google_containers/pause:2.0 "/pause" 25 minutes ago Up 25 minutes k8s_POD.8aa4e38a_kube-apiserver-4uhfg_kube-system_535e0961-5489-11e6-9e6f-fa163ec5d0dc_7dc41f83
2206473d4cc2 10.158.246.131:5000/gcr.io/google_containers/pause:2.0 "/pause" 25 minutes ago Up 25 minutes k8s_POD.8aa4e38a_scheduler-hkdar_kube-system_4381f154-54be-11e6-9e6f-fa163ec5d0dc_4a07f51d
b7a4733b7bdd 10.158.246.131:5000/dtdream/kube-controller-manager:v1.2.4 "/entrypoint.sh" 29 minutes ago Exited (143) 25minutes ago k8s_ctl-manger.7d6b5f70_ctl-manger-zg7oj_kube-system_487e4b46-54ba-11e6-9e6f-fa163ec5d0dc_f11edc5a
0bda5713b9af 10.158.246.131:5000/gcr.io/google_containers/pause:2.0 "/pause" 29 minutes ago Exited (0) 25minutes ago k8s_POD.263c87f4_ctl-manger-zg7oj_kube-system_487e4b46-54ba-11e6-9e6f-fa163ec5d0dc_607674e7
4b7b93a7ecb6 10.158.246.131:5000/dtdream/kube-scheduler:v1.2.4 "/entrypoint.sh" 31 minutes ago Exited (143) 25minutes ago k8s_scheduler.3a283f9f_scheduler-hkdar_kube-system_4381f154-54be-11e6-9e6f-fa163ec5d0dc_607674e7
098fc36ae704 10.158.246.131:5000/gcr.io/google_containers/pause:2.0 "/pause" 31 minutes ago Exited (0) 25minutes ago k8s_POD.d3c004bd_scheduler-hkdar_kube-system_4381f154-54be-11e6-9e6f-fa163ec5d0dc_38dda543
480ad63411de 10.158.246.131:5000/dtdream/kube-apiserver:v1.2.4 "/entrypoint.sh" 33 minutes ago Exited (143) 25minutes ago k8s_kube-apiserver.85a9307f_kube-apiserver-4uhfg_kube-system_535e0961-5489-11e6-9e6f-fa163ec5d0dc_38b27b46
6a901dbc2d95 10.158.246.131:5000/gcr.io/google_containers/pause:2.0 "/pause" 33 minutes ago Exited (0) 25minutes ago k8s_POD.5b5e0666_kube-apiserver-4uhfg_kube-system_535e0961-5489-11e6-9e6f-fa163ec5d0dc_d629380f