一篇文章教你学会部署k8s

1.配置:

环境:ubuntu 16.04
节点:
192.168.25.174 master
192.168.25.176 node

2.系统设置(master和node都执行)

1)禁用swap
swapoff -a
2)关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3)禁用Selinux
apt install selinux-utils
setenforce 0
4)在两个节点的/etc/hosts配置如下
192.168.25.176 slave02
192.168.25.174 master
5)安装docker
apt-get install docker.io -y
6)启动docker服务
systemctl enable docker
systemctl start docker
systemctl status docker
尽量配置docker加速,否则拉取镜像会出现超时。

3.安装kubectl,kubelet,kubeadm( masternode 节点都执行)

1)添加秘钥

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

国内网络无法访问谷歌,此时会报无法找到OpenPGP的错误。
点击此链接 https://packages.cloud.google.com/apt/doc/apt-key.gpg (需要电脑可以访问谷歌)获取pgp文件,然后通过apt-key add apt-key.gpg来加载。

下载apt-key.gpp

2)添加Kubernetes软件源

官方的源(如果无法科学上网,添加此源是没有办法安装kubectl、kubeadm、kubectl的):

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

国内的源(此源可以使用,本次搭建使用的是此源):

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF

安装:

apt-get update && apt-get install -y kubelet kubeadm kubectl
systemctl enable kubelet

注:安装成功后不要执行systemctl start kubelet,执行是会报错的,直接向下执行就可以了。

4、配置Master

1)在master节点 /etc/profile 下面增加如下环境变量(只在master执行)
export KUBECONFIG=/etc/kubernetes/admin.conf
# 重起kubelet
systemctl daemon-reload
systemctl restart kubelet
2)在master节点上执行
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr 10.244.0.0/16

–pod-network-cidr 指定 Pod 网络的范围。Kubernetes 支持多种网络方案,而且不同网络方案对 --pod-network-cidr 有自己的要求,这里设置为 10.244.0.0/16 是因为我们将使用 flannel 网络方案
–kubernetes-version 通过kubectl version 可以查看到(本次搭建使用的是1.14.1),
报错:

会提示拉取镜像超时,是因为无法访问谷歌。

执行kubeadm config images list,查看所需镜像的版本

所需镜像的版本

根据报错信息,在国内网站站上找到相关的镜像(docker需要配置阿里云的镜像仓库)(镜像拉取,master和node都执行)

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.13.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.13.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.13.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.2.24
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.13.2

把这些镜像重新进行tag

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.13.2 k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.13.2 k8s.gcr.io/kube-scheduler:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.13.2 k8s.gcr.io/kube-proxy:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.2.24 k8s.gcr.io/etcd:3.3.10
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.6 k8s.gcr.io/coredns:1.3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.13.2 k8s.gcr.io/kube-apiserver:v1.14.1

然后重新执行以下初始化命令(只在master执行):

kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr 10.244.0.0/16

出现下图 即表示初始化成功~~~~~。

在这里插入图片描述

初始化成功以后,集群还无法使用,上图红框是需要执行的操作,执行完以后才能使用集群(只在master执行)。

1)执行

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

2)接下来配置flannel网络,可以到 https://github.com/coreos/flannel 找到图中的这句话

在这里插入图片描述

也可以直接执行:

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

即可配置flannel网络~~~~

3)查看pod(只能在master执行):

kubectl get pods -n kube-system

所有pod都运行起来了。


在这里插入图片描述

k8s至此master节点已经搭建成功!!!!!

5.将node节点加入到集群中

注:若是全新的节点想要加入到集群中,需要进行上述node节点执行的操作步骤。

1.生成token(master节点执行)
kubeadm token create


在这里插入图片描述

2.生成认证(master节点执行)

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
在这里插入图片描述

3.加入集群(node节点执行)

模板: kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
kubeadm join 192.168.25.120:6443 --token mjvnbw.7kh8sg3l44quuk --discovery-token-ca-cert-hash sha256:1e6093b4731be150a6def44eeef2dc855f49aabc0f814441cc0b3202fe49b
在这里插入图片描述

node节点加入成功~~~~~~

4.master节点查看
可以看到node01节点已经添加成功

在这里插入图片描述

参考:https://blog.csdn.net/wucong60/article/details/81455495

6.可能会出现的问题

1)执行kubectl get nodes即可查看节点
如果出现The connection to the server localhost:8080 was refused - did you specify the right host or port?报错,出现这个问题的原因是kubectl命令需要使用kubernetes-admin来运行,解决方法如下,将主节点中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下,然后配置环境变量:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

再次执行,即可查看节点~~~~

2)coredns没有启动:


在这里插入图片描述
解决办法:

可以docker ps -a查看这个容器id,然后通过docker logs 容器id查看日志。

1)

kubectl edit cm coredns -n kube-system

2)
删除loop,保存退出,这个时候稍加等候,这两个容器就自动起来了。


在这里插入图片描述

若没有启动,把pod删除,k8s会自动创建。
删除命令:

kubectl delete pod coredns-58b5ccf64b-lkzfv -n kube-system
在这里插入图片描述

参考文章:https://blog.csdn.net/wangchunfa122/article/details/86529406

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

推荐阅读更多精彩内容