1. 程式人生 > >kubeadm快速部署Kubernetes_v1.11.3

kubeadm快速部署Kubernetes_v1.11.3

目錄

一、準備工作

地址規劃

IP ADDRESS HOST NAME
172.240.24.188 master188
172.240.24.111 node111
172.240.24.112 node112

以下步驟,如未宣告節點,即為每個節點都要操作

在三臺伺服器上都配置好 /etc/hosts 檔案

# cat >> /etc/hosts << EOF
172.240.24.188 master188  master188.qufujin.top 
172.240.24.111 node111    node111.qufujin.top 
172.240.24.112 node112    node112.qufujin.top 
EOF

ssh 建立信任關係

# ssh-keygen -t rsa
#!/bin/bash
ip=(172.240.24.111 \
    172.240.24.112 \
    172.240.24.113)
pass="[email protected]"
port="1804"

yum install -y expect

for i in ${ip[@]}
do
    expect -c "   
    spawn ssh-copy-id -p${port} -i /root/.ssh/id_rsa.pub [email protected]${i}
        expect {   
            \"*yes/no*\" {send \"yes\r\"; exp_continue}   
            \"*password*\" {send \"${pass}\r\"; exp_continue}   
            \"*Password*\" {send \"${pass}\r\";}   
        } "
done
# bash ssh.sh

關閉防火牆和 selinux

# systemctl stop firewalld && systemctl disable firewalld
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

關閉各節點swap (註釋/etc/fstab檔案裡swap相關的行)

# sed -i '/swap/ [email protected]^\(.*\)[email protected]#\[email protected]' /etc/fstab

配置各節點系統核心引數使流過網橋的流量也進入 iptables/netfilter 框架中

# cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# modprobe br_netfilter && sysctl -p /etc/sysctl.d/kubernetes.conf

重啟生效(修改 SElinux 後必須重啟)

# reboot

二、部署Kubernetes叢集

以下步驟,如未宣告節點,即為每個節點都要操作

安裝 Docker

# yum install -y epel-release yum-utils device-mapper-persistent-data lvm2 wget
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum install -y docker-ce
# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://bc437cce.m.daocloud.io
# systemctl enable docker && systemctl restart docker

安裝 kubeadm、kubelet、kubeadm

# cat >>/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name = Kubernetes Repo
baseurl = https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled = 1
gpgcheck = 1	
gpgkey = https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# yum install -y kubeadm-1.11.3-0.x86_64 kubelet-1.11.3-0.x86_64 kubectl
# systemctl enable kubelet && systemctl restart kubelet

因為 Google 提供映象的站點在牆外,因此需要在國內下載映象,然後重新打上 kubeadm 初始化時可以識別的標籤

# cat k8s_images.sh 
#!/bin/bash
images=(kube-proxy-amd64:v1.11.3 \
        kube-scheduler-amd64:v1.11.3 \
        kube-controller-manager-amd64:v1.11.3 \
        kube-apiserver-amd64:v1.11.3 \
        etcd-amd64:3.2.18 \
        coredns:1.1.3 \
        pause:3.1)
for imageName in ${images[@]}
do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

在 master188 上完成初始化

# kubeadm init \
--kubernetes-version=v1.11.3 \
 --pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=172.240.24.188

 kubeadm init 選項說明

# 選項說明:

# kubeadm init --help
	--apiserver-advertise-address 	\\apiserver向外公告自己的地址是什麼,default:0.0.0.0
	--apiserver-bind-port 	\\apiserver向外監聽的埠,default:6443
	--cert-dir STRING 	\\儲存證書的相關目錄,default "/etc/kubernetes/pki"
	--config 	\\配置檔案
	--ignore-preflight-errors  \\在預檢查的時候可以忽略一些錯誤,比如swap
	--kubernetes-version   \\kubernetes的版本
	--pod-network-cidr     \\pod所使用的網路
	--service-cidr         \\service的網路

.......................................................................

You can now join any number of machines by running the following on each node
as root:

  kubeadm join 172.240.24.188:6443 --token aye96c.hdo6xzlskgmk4anz --discovery-token-ca-cert-hash sha256:b2ff321b46be33766a73191f31f6401eccac455eac9faeb6bf4c30a9e8407923

初始化成功後會生成一行類似於令牌的東西,儲存下來,等下在 各 node 上執行(node111,node112),將各 node 加入叢集

# kubeadm join 172.240.24.188:6443 --token aye96c.hdo6xzlskgmk4anz --discovery-token-ca-cert-hash sha256:b2ff321b46be33766a73191f31f6401eccac455eac9faeb6bf4c30a9e8407923

在master上執行後面的所有操作

執行以下命令進行 kubelet 的 kubeconfig 配置,以便讓當前使用者使用叢集

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

配置 kubectl 命令補全 。注:kubectl:apiserver的命令列客戶端

# yum install -y bash-completion
# source /usr/share/bash-completion/bash_completion
# echo 'source <(kubectl completion bash)' >> /etc/profile
# source /etc/profile

如果是kubenetes 1.7以上版本,只需要執行這條命令就OK了,會自動獲取線上的部署清單,基於此清單下載映象,啟動並部署flannel

# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

檢視叢集中各元件狀態資訊,此處沒有apiserver,但沒事。因為如果apiserver不健康,那麼這個請求也發不過去

# kubectl get componentstatuses 
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok                   
controller-manager   Healthy   ok                   
etcd-0               Healthy   {"health": "true"}   

檢視叢集中各節點的狀態

# kubectl get nodes
NAME                    STATUS   ROLES    AGE   VERSION
master188.qufujin.top   Ready    master   11m   v1.11.3
node111.qufujin.top     Ready    <none>   8m    v1.11.3
node112.qufujin.top     Ready    <none>   8m    v1.11.3

檢視叢集資訊

# kubectl cluster-info 
Kubernetes master is running at https://172.240.24.188:6443
KubeDNS is running at https://172.240.24.188:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

相關推薦

kubeadm快速部署Kubernetes_v1.11.3

目錄 一、準備工作 地址規劃 IP ADDRESS HOST NAME 172.240.24.188 master188 172.240.24.111 node111 172.240.24.112 node112 以下

kubeadm安裝kubernetes v1.11.3 HA多主高可用並啟用ipvs

har 3.1 oba smt lec template prior yaml 應用 環境介紹: 系統版本:CentOS 7.5 內核:4.18.7-1.el7.elrepo.x86_64 Kubernetes: v1.11.3 Docker-ce: 18.06 Kee

使用kubeadm快速部署Kubernetes(v1.12.1)叢集---來源:馬哥教育馬哥原創

使用kubeadm快速部署Kubernetes(v1.12.1)叢集------來源:馬哥教育馬哥原創 Kubernetes技術已經成為了原生雲技術的事實標準,它是目前基礎軟體領域最為熱門的分散式排程和管理平臺。於是,Kubernetes也幾乎成了時下開發工程師和運維工程師必備的技能之一。 一、主機環境預

kubeadm快速部署kubernetes(HA)

當前版本的kubeadm原生並不支援部署HA模式叢集,但是實際上可以使用kubeadm部署後,再進行少量手動修改,即可實現HA模式的kubernetes叢集。本次部署基於Ubuntu16.04,並使用最新的docker版本:17.06,kubernetes

python編程快速上手之第10章實踐項目參考答案(11.11.3)

name driver ret text rul from url .get right from selenium import webdriver from selenium.webdriver.common.keys import Keys import time

Kubernetes 1.11.3上使用動態PV部署EFK 6.4.0

Kubernetes 上部署 efk 日誌收集系統 環境版本:OS:CentOS 7.4(1804)Kubernetes:1.11.3Elasticsearch:5.4.0Fuentd-elasticsearch:2.0.2Kibana:6.4.0 本地映象倉庫:192.168.22.8NFS-Serve

Python編程快速上手讓繁瑣工作自動化-第十一章實踐項目11.11.3 2048

images 滑塊 blog color type pytho col mark abr 2048 是一個簡單的遊戲,通過箭頭向上、下、左、右移動滑塊,讓滑塊合並。實際上,你可以通過一遍一遍的重復“上、右、下、左”模式,獲得相當高的分數。編寫一個程序,打開https://g

附022.Kubernetes_v1.18.3高可用部署架構一

### kubeadm介紹 #### kubeadm概述 參考[附003.Kubeadm部署Kubernetes](https://www.cnblogs.com/itzgr/p/11050543.html)。 #### kubeadm功能 參考[附003.Kubeadm部署Kubernetes](ht

macOS10.12部署sonarqube5.6.3 + mysql5.7.17

con 變量 打印 拷貝 tab unicode osx dst 目錄 所需安裝包已全部上傳雲盤:https://pan.baidu.com/s/1i5LvOCd  密碼:s47e 1. 安裝mysql   下載雲盤的dmg包,一路默認安裝,註意:一定要記住最後一步

redhat6 快速部署percona

.rpm 部署 arc eas www nload hat tar percona 1.首先得能訪問外網絡 2.yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona

11.3-全棧Java筆記:線程的生命周期

java一個線程對象在它的生命周期內,需要經歷5個狀態。新生狀態(New)用new關鍵字建立一個線程對象後,該線程對象就處於新生狀態。處於新生狀態的線程有自己的內存空間,通過調用start方法進入就緒狀態。就緒狀態(Runnable)處於就緒狀態的線程已經具備了運行條件,但還沒有分配到CPU,處於 “線程就緒

使用Docker快速部署Ceph集群

docker ceph 一 應用場景描述二 操作步驟三 Ceph常用操作本文出自 “Linux SA John” 博客,請務必保留此出處http://john88wang.blog.51cto.com/2165294/1947672使用Docker快速部署Ceph集群

Zabbix快速部署

zabbixzabbix具備常見的商業監控軟件所具備的功能:主機性能監控、網絡設備監控、數據庫監控等支持多種報警機制支持自動發現網絡設備和服務器可以通過配置自動發現服務器規則來實現支持分布式,能集中展示、管理分布式的監控點編寫插件容易,可以自定義監控項具有實時繪圖功能下面是快速搭建的步驟:一、安裝zabbix

快速部署一個LNMP

lnmp1.安裝nginx # wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.8.1-1.el7.ngx.x86_64.rpm # rpm -ivh nginx-1.8.1-1.el7.ngx.x86_64.rpm 2.安裝

11.3 商標法解讀

沒有 界定 考試 ima 剛才 alt 解讀 -1 提交 就是你哪一天寄出的,在遞送郵件的時候郵電局會給你蓋上郵戳.這個郵戳是能夠證明你什麽時候寄出的東西.那麽我們的評審就以這個日期為準.之所以提出這個郵戳日期,就是為了避免一種情況:就是多人向商標局申請同一個標誌定為它

7.11.3 Java簡介

產品 uri 搭建 ini form 其他 bject 包含 orm 101Java簡介 101Java簡介及開發環境搭建 Java簡介 編程語言簡介 機器語言:純粹的機器代碼 機器語言是有0,1,0,1的二進制代碼組成,可以有計算機直接執行。效率最高,但是通用性不強,

mysql快速部署主從復制

mysql快速部署主從復制master主庫端:保障server-id不一樣保證開啟binglog此處的192.168.1.8為從庫機器的ip地址reset master;mysql -uroot -p‘sred(5678%$#@!)d70‘ -e "grant replication slave on *.*

2014-11-3 NOIP模擬賽2

排列 空格 window 想要 一個 paint 最大 長度 包括 NOIP 2014 水題模擬賽 (請選手務必仔細閱讀本頁內容) 一.題目概況 中文題目名稱 數列 刷漆 排隊

11.3 AHSOFNU 校內模擬

long make closed set 輸出 上一條 edge end 當前 塊(block) 【問題描述】  拼圖達人小 C 手裏有 n 個 1*1 的正方形方塊,他希望把這些方塊拼在一起, 使得拼出的圖形周長最小, 要求方塊不能重疊。 擅長拼圖的小 C 一下就求出了