Глава 3 Развертывание кластера Kubernetes


Клиент Kubernetes

官方提供的用戶端工具kubectl,一種用在與Kubernetes API互動的命令列工具。

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.15", GitCommit:"2adc8d7091e89b6e3ca8d048140618ec89b39369", GitTreeState:"clean", BuildDate:"2020-09-02T11:40:00Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.15", GitCommit:"2adc8d7091e89b6e3ca8d048140618ec89b39369", GitTreeState:"clean", BuildDate:"2020-09-02T11:31:21Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
Вход в полноэкранный режим Выход из полноэкранного режима

會看到2種版本,一個是本機kubectl版本、一個是Kubernetes API伺服器版本。版本可以相容1個minor version差異。
например, api сервер是1.20 kubectl可以是1.21, 1.20, 1.19。

Компоненты кластера

Kubernetes proxy負責將網路流量路由至叢集內的LoadBalancer,存在於每個node。Kubernetes有一個名為DaemonSet的API物件,來達到此目的。

Прокси Kubernetes отвечает за маршрутизацию сетевого трафика к сервисам с балансировкой нагрузки в кластере Kubernetes. Чтобы выполнять свою работу, прокси должен присутствовать на каждом узле кластера. В Kubernetes есть объект API под названием DaemonSet, о котором вы узнаете далее в книге, и который используется во многих кластерах для достижения этой цели.

$ k get daemonSets --all-namespaces

NAMESPACE     NAME              DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
kube-system   kube-flannel-ds   1         1         1       1            1           <none>                        19h
kube-system   kube-proxy        1         1         1       1            1           beta.kubernetes.io/os=linux   19h
Вход в полноэкранный режим Выход из полноэкранного режима

Kubernetes DNS作為副本式服務運行在叢集中。根據叢集大小,可能會看到一個或多個DNS伺服器運行。

Kubernetes также запускает DNS-сервер, который обеспечивает именование и обнаружение служб, определенных в кластере. Этот DNS-сервер также работает как реплицированный сервер на кластере. В зависимости от размера вашего кластера вы можете увидеть один или несколько DNS-серверов, работающих в вашем кластере.

DNS以Deployment運行,它會管理所有DNS的replica。

$ k get deployments --namespace=kube-system coredns
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
coredns   2/2     2            2           19h
Вход в полноэкранный режим Выйти из полноэкранного режима

還有一個Service,它為DNS提供LoadBalance。

$ kubectl get svc --namespace=kube-system
NAME       TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
kube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   19h
Вход в полноэкранный режим Выход из полноэкранного режима

Kubernetes UI 只有一個replica,但是為了可靠性和方便升級,還是透過Kubernetes deployment管理。

Оцените статью
devanswers.ru
Добавить комментарий