Ubunbu18.04.4 + Docker-ce 19.03.8 搭建Kubernetes v1.18.2

1. 准备3台虚拟机(Ubunbu18.04.4)

k8s-master: 10.0.0.211

k8s-node1: 10.0.0.212

k8s-node2: 10.0.0.213

1.1 安装Docker-ce19.03.8(Kubernetes官网举例的版本)

1.1.1 添加 Docker-ce 阿里源

1) 安装工具:

 apt-get -y install apt-transport-https ca-certificates curl software-properties-common

2) 安装证书: 

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

3) 添加 docker 阿里源:

add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

4) 更新软件列表: 

apt-get update

5) 查询docker-ce版本: 

apt-cache madison docker-ce

6) 安装docker-ce 19.03.8版本:

 apt-get install -y docker-ce=5:19.03.8~3-0~ubuntu-bionic

1.1.2 修改 Docker的cgroup驱动(与kubernetes一至)

1) 创建相关目录: 

mkdir -p /etc/systemd/system/docker.service.d

2) 创建daemon.json文件: 

cat > /etc/docker/daemon.json <<EOF

{

  "exec-opts": ["native.cgroupdriver=systemd"],

  "log-driver": "json-file",

  "log-opts": {

    "max-size": "100m"

  },

  "storage-driver": "overlay2",

  "registry-mirrors": ["https://wgkla0w3.mirror.aliyuncs.com"]

}

EOF

3) 重启doceker服务

systemctl daemon-reload

systemctl restart docker.service

4) 确认docker服务正常

systemctl status docker.service

5) 确认docke-ce版本


1.2 安装 Kubernetes V1.18.2

1.1.1 添加 Kubernetes 阿里源

1) 安装工具:

apt-get update && apt-get install -y apt-transport-https

2) 安装证书: 

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

3) 添加 kubernetes 阿里源:

 cat >/etc/apt/sources.list.d/kubernetes.list<<EOF

deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

EOF

4) 更新软件列表: 

apt-get update

5) 安装 kubernetes v1.18.2: 

apt-get install -y kubelet kubeadm kubectl

6) 确认 kubernetes 版本:

2. Master节点的搭建

2.1 查看 kubernetes v1.18.2 所需的镜像

kubeadm config images list --kubernetes-version=v1.18.2

2.2 编写拉取镜像脚本

2.3 执行脚本,pull镜像

2.4 确认所需镜像pull成功

2.5 保存Node节点所需的镜像,并分发至node节点

1) 保存镜像
docker image save -o kube-proxy.tar.gz k8s.gcr.io/kube-proxy:v1.18.2

docker image save -o pause.tar.gz k8s.gcr.io/pause:3.2

2) 分发镜像至node节点

rsync -av kube-proxy.tar.gz damin@10.0.0.212:/tmp

rsync -av pause.tar.gz damin@10.0.0.212:/tmp

rsync -av kube-proxy.tar.gz damin@10.0.0.213:/tmp

rsync -av pause.tar.gz damin@10.0.0.213:/tmp

2.6 初始化kubernetes集群

1) 初始化命令:
kubeadm init --kubernetes-version=v1.18.2 --pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=10.0.0.211

2) 根据提示创建kubectl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

3) 记下kubeadm join信息,其它节点加入Kubernetes集群时执行

kubeadm join 10.0.0.211:6443 --token 2dobh5.arnocdrun84avxhj \

    --discovery-token-ca-cert-hash sha256:452d0cd2c95bcbf1538f0ec424a0ecfd25e1acb79b708d9e57d5ba9a25221d3d

4) 若初始化报错,重新reset

kubeadm reset

5) 重新初始化

kubeadm init --kubernetes-version=v1.18.2 --pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=10.0.0.211

6) 查看pods信息

kubectl get pods --all-namespaces

7) coredns 没有Running 是因为集群网络没有搭建

2.7 搭建calico 网络

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

9) 再次查看pods信息,所有pods 已经Running

2.8 安装kubernetes-dashboard UI

1) 下载dashboard的yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml

2) 编辑这个文件

mv recommended.yaml dashboard.yaml

vim dashboard.yaml

3) 创建kubernetes-dashboard,并查看pods&services

kubectl create -f dashboard.yaml

kubectl get pods --all-namespaces

kubectl get services --all-namespaces

4) 创建dashboard的admin-user用户

vim dashboard-admin-user.yaml

apiVersion: v1

kind: ServiceAccount

metadata:

  name: admin-user

  namespace: kubernetes-dashboard

5)  创建dashboard的clusterRoleBinding

vim dashboard-clusterRoleBinding.yaml

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

  name: admin-user

roleRef:

  apiGroup: rbac.authorization.k8s.io

  kind: ClusterRole

  name: cluster-admin

subjects:

- kind: ServiceAccount

  name: admin-user

  namespace: kubernetes-dashboard

6) 执行创建

kubectl create -f dashboard-admin-user.yaml

kubectl create -f dashboard-clusterRoleBinding.yaml

7) 获取登录网页的token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret |grep admin-user| awk '{print $1}')

8) 登录网页https://10.0.0.211:30000/

输入token登录


3. Node节点接入集群

3.1 导入所需的镜像

docker image load -i kube-proxy.tar.gz

docker image load -i pause.tar.gz

3.2 确认镜像导入成功

1) Node1节点

2) Node2 节点

3.3 Node1 & Node2 节点加入集群

3.4 Master 查看所有nodes状态

4. 总结

至此所有的搭建已经完毕,搭建过程中的小问题会有出现.

比如docker的搭建,需要注意cgroup的驱动修改为systemd的模式,这是为了和kubernetes的一致,以确保整个kubernetes集群系统的编排调度更为稳定.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,226评论 6 524
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,509评论 3 405
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,523评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,181评论 1 302
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,189评论 6 401
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,642评论 1 316
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,993评论 3 431
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,977评论 0 280
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,527评论 1 326
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,547评论 3 347
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,661评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,250评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,991评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,422评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,571评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,241评论 3 382
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,737评论 2 366