摘要:是谷歌官方根據自己容器經驗開源的產品。當然,這不可能是,而且它的底層是替換成了,但是這不能掩蓋它解決的問題。因此筆者決定嘗試玩玩。不然啟動會報錯。
背景
容器技術在目前很火,而且確確實實的解決了很多的痛點,但是如果只使用目前 Docker 官方提供的 engine+compose+swarm 方案,是很難再實際生產中使用的。Kubernetes 是谷歌官方根據自己容器經驗 Borg 開源的產品。當然,這不可能是 Borg,而且它的底層是替換成了 Docker,但是這不能掩蓋它解決的問題。因此筆者決定嘗試玩玩。
架構根據官方文檔的說明,Kubernetes 是使用 golang 寫成,并且依賴 coreos/etcd 和 docker/docker 產品,Kubernetes 實際上是個分布式的 master-slave 架構,主要有以下組件 api-server、controller-manager、scheduler、proxy、kubelet,前面三個分別是 API 接口服務器、管理控制器、調度器,而后面兩個則是網絡派發代理和實際和 Docker 溝通的 agent。
部署官方給出的下載安裝文檔簡直簡略的不能再簡略了,而使用 yum 等包管理工具安裝目前只能安裝 2.x 版本最新而沒有 3.x 的預編譯包,不過沒關系,我們可以直接下載預編譯安裝包。
etcdetcd 是 coreos 為了進行分布式部署所做的鍵值存儲服務,Github release 上面可以直接下載到最新的預編譯包然后把其中的兩個二進制文件扔到 /usr/local/bin 目錄下就 ok 了。
至于配置文件和 systemd 單元文件也很簡單,官方 github 上面已經提供了 systemd 啟動文件,首先是添加一個名為 etcd 的系統用戶(注意:是 daemon 用戶,別加上亂七八糟的東西)
[Unit] Description=etcd key-value store Documentation=https://github.com/coreos/etcd [Service] User=etcd Type=notify Environment=ETCD_DATA_DIR=/var/lib/etcd Environment=ETCD_NAME=%m ExecStart=/usr/bin/etcd Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target
而 etcd 實際上是使用環境變量作為配置的,具體可以參考 etcd 的 github 文檔,這里提供筆者的單元文件
[Unit] Description=etcd key-value store Documentation=https://github.com/coreos/etcd [Service] User=etcd Type=notify WorkingDirectory=/usr/local/var/lib/etcd ExecStart=/usr/local/bin/etcd Restart=on-failure RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target
直接把工作目錄指定到 /usr/local/var/lib/etcd,這樣默認情況下所有的數據文件都會存放在 default.etcd 文件夾下,不過注意這個目錄需要手工創建并且制定合適的權限。不然 systemd 啟動會報錯。然后把啟動文件放到 /etc/systemd/system/etcd.service
如果說具體的配置需要配,則應當再指定 EnvironmentFile=/path/to 指定一個環境變量文件,所有的配置都通過環境變量配置。
基本思路跟上面一個樣,先下載二進制包,把二進制文件放到 /usr/local/bin 目錄下,然后就是 systemd 單元文件,官方也在 Github 上提供了單元文件,直接拿下來用
[Unit] Description=Docker Socket for the API PartOf=docker.service [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket firewalld.service Requires=docker.socket [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H fd:// ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=1048576 # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process [Install] WantedBy=multi-user.target
需要注意的是上面有兩個 systemd 文件,一個是 socket 啟動文件,一個是正常的 docker 啟動文件,這個特性來自于 1.12 版本,具體請參考官方的 ReleaseNote。
還有一點就是記得添加一個 docker 用戶組
同樣是下載二進制包解壓開來,進入 server 目錄,解壓 kubernetes-server-linux-amd64.tar.gz 文件,把解壓文件里的 5 個組件放到 /usr/local/bin 目錄(注意:就放上面提到的 5 個組件就行,其他的不用),還有一個就是 client 命令行 kubectl 文件。
然后添加 kube 系統用戶。
useradd -c "kubernetes user" -d / -M -r -s /sbin/nologin kube
然后就是官方提供的 systemd 文件 https://github.com/kubernetes... 這里就不深入講解了,因為實際上跟 etcd 基本一致,只不過 kubernetes 并不使用環境變量作為配置方式,所以必須在 systemd 啟動文件中將環境變量轉換為命令行參數傳入。
未完待續文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26707.html
摘要:發布不到兩天,上數已近,這個業界大熱的史上最輕量的開源發行版,你試過了沒資深架構師來教你走出嘗鮮第一步使用教程在此前言昨天,正式發布了一款史上最輕量的開源發行版。大小只有,極簡,輕便,易于使用。 發布不到兩天,GitHub上Star數已近3000,這個業界大熱的、史上最輕量的開源Kubernetes發行版,你試過了沒? Rancher資深架構師來教你走出嘗鮮第一步!使用教程在此! sh...
摘要:是谷歌官方根據自己容器經驗開源的產品。當然,這不可能是,而且它的底層是替換成了,但是這不能掩蓋它解決的問題。因此筆者決定嘗試玩玩。不然啟動會報錯。 背景 容器技術在目前很火,而且確確實實的解決了很多的痛點,但是如果只使用目前 Docker 官方提供的 engine+compose+swarm 方案,是很難再實際生產中使用的。Kubernetes 是谷歌官方根據自己容器經驗 Borg 開...
摘要:早在年針對高科技行業和高科技企業生命周期的特點,提出了著名的鴻溝理論。今天我們嘗試以鴻溝理論為基礎來分析云原生領域顛覆性的創新技術?;剡^頭來看,靈雀云從早期全力投入技術棧,是最早進行產品化的廠商。 歷史進入2019年,放眼望去,今天的整個技術大環境和生態都發生了很大的變化。在己亥豬年春節剛剛過去的早春時節,我們來梳理和展望一下整個云原生技術趨勢的發展,是一件很有意義的事情,這其中有些變...
摘要:而且作為一個版本,其中有一些,可能會導致一些配置和插件不工作。但這并無妨礙我們去開始對上的新特性進行嘗鮮實戰。 作者:志佳老師 本文首發微信公眾號:jingchengyideng歡迎關注,每天都給你推送新鮮的前端技術文章 前言 在老袁寫這篇文章的時候,v5版本仍然處于早期階段,可能仍然有問題。而且作為一個major版本,其中有一些breaking changes,可能會導致一些配置...
摘要:嘗鮮箭頭函數問題描述驗證方式題目分析熟悉的新的函數構造方式箭頭函數。箭頭函數總是匿名的。我的解法優解和搭配構造可構造有名函數。單句聲命可省略??杀环顷P鍵字就不能用。 [7 kyu]Sort with Arrow Functions 嘗鮮箭頭函數??2016.03.08 問題描述: showImg(http://ww4.sinaimg.cn/large/006m2mhTgw1f1p5d9...
閱讀 3143·2021-11-23 10:02
閱讀 3118·2021-11-16 11:53
閱讀 3093·2021-09-23 11:21
閱讀 3369·2019-08-30 13:02
閱讀 1622·2019-08-29 16:18
閱讀 1557·2019-08-29 12:55
閱讀 1457·2019-08-26 12:24
閱讀 2085·2019-08-26 10:36