kubernetes集群環(huán)境搭建

k8s環(huán)境搭建

1.1 版本統(tǒng)一

Docker       18.09.0
---
kubeadm-1.14.0-0 
kubelet-1.14.0-0 
kubectl-1.14.0-0
---
k8s.gcr.io/kube-apiserver:v1.14.0
k8s.gcr.io/kube-controller-manager:v1.14.0
k8s.gcr.io/kube-scheduler:v1.14.0
k8s.gcr.io/kube-proxy:v1.14.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
---
v0.11.0-amd64

1.2 k8s安裝步驟

1.2.1 更新并安裝依賴

yum -y update
yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

1.2.2 安裝Docker

安裝好Docker滋早,版本為18.09.0

01 安裝必要的依賴
    sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2

02 設(shè)置docker倉庫
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

【設(shè)置要設(shè)置一下阿里云鏡像加速器】
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["http://2595fda0.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload

03 安裝docker

  yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io

04 啟動docker
    sudo systemctl start docker && sudo systemctl enable docker

1.2.3 修改hosts文件

(1)master

# 設(shè)置master的hostname拱绑,并且修改hosts文件
sudo hostnamectl set-hostname m

vi /etc/hosts
192.168.1.157 master
192.168.1.158 node1
192.168.1.159 node2

(2)分別在兩個node節(jié)點執(zhí)行

# 設(shè)置node1/node2的hostname叭莫,并且修改hosts文件
sudo hostnamectl set-hostname node1
sudo hostnamectl set-hostname node2

vi /etc/hosts
192.168.1.157 master
192.168.1.158 node1
192.168.1.159 node2

(3)使用ping測試一下

1.2.4 系統(tǒng)基礎(chǔ)前提配置

# (1)關(guān)閉防火墻
systemctl stop firewalld && systemctl disable firewalld

# (2)關(guān)閉selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

# (3)關(guān)閉swap
swapoff -a
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

# (4)配置iptables的ACCEPT規(guī)則
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

# (5)設(shè)置系統(tǒng)參數(shù)
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

1.2.5 安裝 kubeadm, kubelet and kubectl

(1)配置yum源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

(2)安裝kubeadm&kubelet&kubectl

yum install -y kubeadm-1.14.0-0 kubelet-1.14.0-0 kubectl-1.14.0-0

(3)docker和k8s設(shè)置同一個cgroup

# docker
vi /etc/docker/daemon.json
    "exec-opts": ["native.cgroupdriver=systemd"],

systemctl restart docker

# kubelet篡九,這邊如果發(fā)現(xiàn)輸出directory not exist,也說明是沒問題的工禾,大家繼續(xù)往下進(jìn)行即可
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g"/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

systemctl enable kubelet && systemctl start kubelet

1.2.6 下載國內(nèi)鏡像

  • 查看kubeadm使用的鏡像
kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.14.0
k8s.gcr.io/kube-controller-manager:v1.14.0
k8s.gcr.io/kube-scheduler:v1.14.0
k8s.gcr.io/kube-proxy:v1.14.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
  • 創(chuàng)建kubeadm.sh腳本廷臼,用于拉取鏡像/打tag/刪除原有鏡像
#!/bin/bash

set -e

KUBE_VERSION=v1.14.0
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.10
CORE_DNS_VERSION=1.3.1

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done
  • 運行腳本和查看鏡像
# 運行腳本
sh ./kubeadm.sh

# 查看鏡像
docker images

1.2.7 kube init初始化master

(1) 初始化master節(jié)點

官網(wǎng):https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

注意此操作是在主節(jié)點上進(jìn)行

# 本地有鏡像
kubeadm init --kubernetes-version=1.14.0 --apiserver-advertise-address=192.168.1.157 --pod-network-cidr=10.244.0.0/16
【若要重新初始化集群狀態(tài):kubeadm reset,然后再進(jìn)行上述操作】
init] Using Kubernetes version: v1.14.0

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.1.157:6443 --token 40kelq.09xe7ldc86xp6sqm \
    --discovery-token-ca-cert-hash sha256:b958ca9b91fba40dfd1246132d741c9d8a8ca8f63f4826457c9bbfde413733d9 

kubeadm join 192.168.100.201:6443 --token dtki8i.g6v5omd7uu7gbijr \
    --discovery-token-ca-cert-hash sha256:439a6015bfeea33e100c8e633d4e0ef0e9a69aa19bd5db4ce7f5b40c61164a07    

    //生成不過期token
    kubeadm token create --ttl 0 --print-join-command

記得保存好最后kubeadm join的信息

(3)根據(jù)日志提示

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

此時kubectl cluster-info查看一下是否成功

(4)查看pod驗證一下

等待一會兒塘辅,同時可以發(fā)現(xiàn)像etc晃虫,controller,scheduler等組件都以pod的方式安裝成功了

注意:coredns沒有啟動扣墩,需要安裝網(wǎng)絡(luò)插件

kubectl get pods -n kube-system

(5)健康檢查

curl -k https://localhost:6443/healthz

1.2.8 安裝網(wǎng)絡(luò)插件flannel

執(zhí)行完上述操作是coredns 仍未啟動成功哲银,需要安裝網(wǎng)絡(luò)插件

docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64
docker rmi quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64

kube-flannel.yml

https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml

注意:文件中 Network 和 kubeadmin init 設(shè)置的pod-network-cidr=10.244.0.0/16 一致

net-conf.json: |
    {
      "Network": "10.244.0.0/16",
      "Backend": {
        "Type": "vxlan"
      }
    }

然后查看

kubectl get pods -n kube-system

發(fā)現(xiàn)coredns仍然沒有啟動,是因為master 默認(rèn)不支持調(diào)度扛吞,執(zhí)行下面操作即可:

kubectl taint nodes --all node-role.kubernetes.io/master-

本文由博客群發(fā)一文多發(fā)等運營工具平臺 OpenWrite 發(fā)布

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荆责,隨后出現(xiàn)的幾起案子滥比,更是在濱河造成了極大的恐慌,老刑警劉巖做院,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盲泛,死亡現(xiàn)場離奇詭異,居然都是意外死亡山憨,警方通過查閱死者的電腦和手機(jī)查乒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郁竟,“玉大人,你說我怎么就攤上這事由境∨锬叮” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵虏杰,是天一觀的道長讥蟆。 經(jīng)常有香客問我,道長纺阔,這世上最難降的妖魔是什么瘸彤? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮笛钝,結(jié)果婚禮上质况,老公的妹妹穿的比我還像新娘。我一直安慰自己玻靡,他們只是感情好结榄,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著囤捻,像睡著了一般臼朗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝎土,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天视哑,我揣著相機(jī)與錄音,去河邊找鬼誊涯。 笑死挡毅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的醋拧。 我是一名探鬼主播慷嗜,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼淀弹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了庆械?” 一聲冷哼從身側(cè)響起薇溃,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缭乘,沒想到半個月后沐序,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡堕绩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年策幼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奴紧。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡特姐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出黍氮,到底是詐尸還是另有隱情唐含,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布沫浆,位于F島的核電站捷枯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏专执。R本人自食惡果不足惜淮捆,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望本股。 院中可真熱鬧攀痊,春花似錦、人聲如沸痊末。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凿叠。三九已至涩笤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盒件,已是汗流浹背蹬碧。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留炒刁,地道東北人恩沽。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像翔始,于是被迫代替她去往敵國和親罗心。 傳聞我的和親對象是個殘疾皇子里伯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361