Kubernetes學(xué)習(xí)(1)
kubernetes是什么?
是一個基于容器技術(shù)的分布式架構(gòu)方案瑰妄。
具備集群管理能力陷嘴,并且提供了完善的管理工具
在kubernetes中service是分布式集群架構(gòu)的核心。service對象擁有的關(guān)節(jié)特征:
- 擁有唯一指定名稱
- 擁有一個虛擬IP和端口號
- 能夠提供某種遠程服務(wù)能力
- 被映射到能夠提供服務(wù)能力的一組容器能力
把service提供服務(wù)的這組進程放入容器進行隔離间坐,kubernetes設(shè)計了Pod對象灾挨。
這樣可以把每個服務(wù)進程包裝到相應(yīng)的Pod中,在Pod內(nèi)運行一個容器竹宋,這樣可以建立Pod和service的關(guān)聯(lián)關(guān)系劳澄。
- Pod運行在一個節(jié)點環(huán)境中,每個Pod運行著一個特殊的容器(Pause),其他容器則為業(yè)務(wù)容器蜈七。
- 這些業(yè)務(wù)容器共享pause容器的網(wǎng)絡(luò)桟和掛載卷(Volume)
- 在集群的管理方面秒拔,kubernetes將集群的集群劃分為master和Node,
- master上運行著集群管理的相關(guān)進程——hube-apiserver飒硅、kube-controller-manager和kube-scheduler砂缩。這些進程實現(xiàn)了集群的資源管理,Pod調(diào)度三娩,彈性伸縮庵芭、安全控制、系統(tǒng)監(jiān)控和糾錯等管理功能尽棕。
- Node管理的最小運行單元是Pod喳挑,運行著kubeket和kube-proxy,這些服務(wù)進程復(fù)制Pod的建立滔悉,啟動、監(jiān)控单绑、重啟回官、銷毀,實現(xiàn)軟件模式的負載均衡搂橙。
簡單實例
準備Centos7環(huán)境歉提,
docker鏡像下載地址:https://hub.docker.com/u/kubeguide
docker安裝網(wǎng)址:https://www.runoob.com/docker/centos-docker-install.html
安裝docker
- 設(shè)置倉庫
#yum install -y yum-utils device-mapper-persistent-data lvm2
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.io
- Docker 安裝完默認未啟動。并且已經(jīng)創(chuàng)建好 docker 用戶組,但該用戶組下沒有用戶苔巨。
#usermod -aG docker lhf
#id lhf
uid=1000(lhf) gid=1000(lhf) groups=1000(lhf),993(docker)
#systemctl start docker
[root@lhf 13:05:53 /root]
#docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:25:41 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:24:18 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec368
kubernetes的核心組價
- kubernetes的核心組件都可以稱之為資源對象版扩。
- 所有的資源對象都是通過kubectl工具執(zhí)行增刪改查操作的并將其保存在etcd中持久化存儲的。
Master
- master是集群的控制節(jié)點侄泽。
- master節(jié)點運行的關(guān)鍵進程:
- kube-apiserver:(1)是所有資源增刪改查等操作的唯一入口礁芦。(2)集群控制的入口進程 (3)提供例如HTTPRest接口的服務(wù)進程
- kube-controller-manager:所有資源的自動化控制中心
- kube-scheduler:復(fù)制Pod調(diào)度的進程
- master部署etcd服務(wù),kubernetes的所有資源進程對象的數(shù)據(jù)都保存在etcd中