编排 K8S
容器环境 : Docker Desktop for Mac
Hypervisor : 原生的HyperKit
请注意: 这里我们不使用Minikube,因此也不需要安装virtualbox作为hypervisor.
安装
- 下载Docker for Mac App
- 安装完毕后勾选Enable Kubernetes 及使用k8s作为默认的编排器
- 这个步骤需要一些时间。如果是在国内安装,会遇到些问题。在安装过程中建议打开CONSOLE监控安装过程。我自己的经历是安装kubernets大概需要半小时以上。
- 在这个过程中,你会看到hyperkit这个进程在下载东西。在console 中你会看到各种消息,比如system pod dns is not running 等等,但没管它,继续等待。最后你会见到
如果一切顺利,半小时或更久的时间后k8s下载并安装完毕, 检查k8s的版本。
安装完毕后,你应该看到kube-system这个namespace里应该没有不在ready状态的pod.
接下来,我们需要安装第一个应用,k8s的管理界面,否则我们只有命令行可以用。
k8s的管理界面是一个 dashboard的应用,我们需要部署这个。
kubernetes/dashboardgithub.com
需要等一会,部署完毕后,你会看到kubernets-dashbaord的available = 1 及ready 1/1.
然后我们通过k8s的proxy来访问dashbaord
你可能会遇到需要token才能访问这个 dashboard,让我们来拿的一个token.
kubectl -n kube-system describe secrets replication-controller-token-kzlnm
然后打开浏览器来访问dashboard
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
贴入token
到这里我们安装完毕,我们可以看到在kube-system这个namspace里面我们部署了名为kubernetes-dashboard的应用,该应该通过一个名为kubernetes-dashboard-669f9bbd46-l4cwg的POD安装了容器来提供dashboard的服务。
andywang@andywang-mbp ~ kubectl describe pods kubernetes-dashboard-669f9bbd46-l4cwg --namespace=kube-system
Name: kubernetes-dashboard-669f9bbd46-l4cwg
Namespace: kube-system
Node: docker-for-desktop/192.168.65.3
Start Time: Mon, 13 May 2019 12:59:13 +0800
Labels: k8s-app=kubernetes-dashboard
pod-template-hash=2259566802
Annotations: <none>
Status: Running
IP: 10.1.0.4
Controlled By: ReplicaSet/kubernetes-dashboard-669f9bbd46
Containers:
kubernetes-dashboard:
Container ID: docker://3876cf10a912fa872c39206a22c349d089980515629cad45ee43a9e1ba77ee24
Image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
Image ID: docker-pullable://k8s.gcr.io/kubernetes-dashboard-amd64@sha256:0ae6b69432e78069c5ce2bcde0fe409c5c4d6f0f4d9cd50a17974fea38898747
Port: 8443/TCP
Host Port: 0/TCP
Args:
--auto-generate-certificates
State: Running
Started: Mon, 13 May 2019 13:01:51 +0800
Ready: True
Restart Count: 0
Liveness: http-get https://:8443/ delay=30s timeout=30s period=10s #success=1 #failure=3
Environment: <none>
Mounts:
/certs from kubernetes-dashboard-certs (rw)
/tmp from tmp-volume (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kubernetes-dashboard-token-wxnrl (ro)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
kubernetes-dashboard-certs:
Type: Secret (a volume populated by a Secret)
SecretName: kubernetes-dashboard-certs
Optional: false
tmp-volume:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
kubernetes-dashboard-token-wxnrl:
Type: Secret (a volume populated by a Secret)
SecretName: kubernetes-dashboard-token-wxnrl
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node-role.kubernetes.io/master:NoSchedule
node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 22m default-scheduler Successfully assigned kubernetes-dashboard-669f9bbd46-l4cwg to docker-for-desktop
Normal SuccessfulMountVolume 22m kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "tmp-volume"
Normal SuccessfulMountVolume 22m kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "kubernetes-dashboard-certs"
Normal SuccessfulMountVolume 22m kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "kubernetes-dashboard-token-wxnrl"
Normal Pulling 22m kubelet, docker-for-desktop pulling image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1"
Normal Pulled 19m kubelet, docker-for-desktop Successfully pulled image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1"
Normal Created 19m kubelet, docker-for-desktop Created container
Normal Started 19m kubelet, docker-for-desktop Started container
3861

被折叠的 条评论
为什么被折叠?



