k8s1.2.4 自举笔记

Kubernetes自举启动流程
本文详细介绍Kubernetes自举启动流程,从初始化网络配置到各组件的启动过程,包括apiserver、controller-manager、scheduler等核心组件的手动启动及配置。

Kubernetes自举启动流程

自举流程默认etcd集群可用;node节点上flanneldkube-proxykubelet进程可用且配置合理(在ubuntu环境中包括initinit.ddefault文件下的配置),如果多节点导入费时费力可先正常安装一遍kubernetes,再将管理节点上的进程杀掉。

注:下文中绿色字体字段需要根据实际情况来配置

step1 -- 默认etcd可用,导入网络配置和默认namespacekube-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 --先启动apiservercontroller-manager,这两个进程启动后会根据相应的配置在etcd中生成默认数据(包括节点信息和秘钥信息),再启动flanneld,与此同时kube-proxykubelet会跟着启动,启动命令如下:


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

注:该步骤只为得到etcdminionssecret数据,如果环境之前配置过kubernetes,该步骤可以省略。


service flanneld start


注:启动flanneld后,kube-proxykubelet也会跟着启动,通过etcdctlls –recursive 命令不停的查询,一直到etcd中生成minions信息后再执行下一步。

step3 ---确认step2会在etcd中生成minionssecret信息,然后停掉kubelet,杀掉api-servercontroller-manager

servicekubelet stop

dockerps

dockerrm -f 8f8de8a63d07 a57b08b55715(依据实际情况)


step4 --- 启动自举进程

启动apiserver

启动apiserverpause进程

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-systemtoken名称,如下:

etcdctlls --recursive | grep token

/registry/secrets/kube-system/default-token-2nlts

/registry/secrets/default/default-token-q8v2j


修改pod配置文件,将docker的容器IDtokendefault-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\"}]}}"

:绿色字段需要根据实际情况进行修改。Token3处,宿主ip3处,docker容器ip1处,镜像版本: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

启动schedulerpause进程

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的容器IDtoken对应修改,然后存入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\"}]}}"

:绿色字段需要根据实际情况进行修改。Token3处,宿主ip3处,docker容器ip1处,镜像版本: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

启动controllerpause进程

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的容器IDtoken对应修改,然后存入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\"}]}}"


:绿色字段需要根据实际情况进行修改。Token3处,宿主ip3处,docker容器ip1处,镜像版本: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中的配置重启apiservercontroller-managerscheduler,效果如下:

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












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值