k8s安装

这里有最新版本安装记录: https://www.jianshu.com/p/9944b460f90f

k8s安装

k8s 分为很多服务模块,以前部署的时候要一个一个安装。不过现在已经简化很多了,这次我们就通过 kubeadm 来部署 k8s

第一步

更新系统,添加源,代码如下:

apt update
apt install -y apt-transport-https ca-certificates curl software-properties-common
#docker源
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

#kubeadm源
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

apt update

第二步

安装 kubeadmdocker-cekubeadm 会以容器的形式部署 k8s 。但是有些组件如果通过容器部署,使用起来会很麻烦。于是当你在 ubunut 上安装 kubeadm 时会附带安装上这些不能通过容器部署的组件,比如 kubectl 等。而其他的组件则会通过容器的形式安装。代码如下:

apt install -y docker-ce kubeadm

第三步(可选)

添加镜像加速地址,我一般使用的是阿里云镜像服务中的镜像加速地址。代码如下:

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

第四步

手动下载两个依赖镜像。 k8s 需要的镜像并没有保存在 dockerhub 上,而是保存在 google 的服务器上。好在使用 kubeadm 部署 k8s 时可以指定其他的镜像仓库,而 dockerhub 上有另一个镜像仓库,里面是 k8s 组件的镜像。这个镜像仓库叫做 mirrorgooglecontainers 。有两个依赖镜像没有被放到这个镜像仓库中:coredns/corednscoreos/flannel 。我们先把这两个镜像下载下来。命令如下:

docker pull coredns/coredns:1.2.6
docker tag coredns/coredns:1.2.6 mirrorgooglecontainers/coredns:1.2.6

wget https://github.com/coreos/flannel/releases/download/v0.11.0/flanneld-v0.11.0-amd64.docker
docker load < flanneld-v0.11.0-amd64.docker

第一个镜像是 k8s 内部使用的DNS和服务发现服务镜像,第二个镜像是网络插件 flannel 的镜像。第一个镜像需要改名与 mirrorgooglecontainers 一致, k8s 在安装开始的时候就会需要它,第二个镜像不用改名之后会用到。

第五步

开始部署 k8s ,命令如下:

kubeadm init --image-repository=mirrorgooglecontainers --pod-network-cidr=10.244.0.0/16

这里指定了镜像仓库和 cidr ,指定 cidr 的原因是因为网络插件 flannel 默认就是使用的这个 cidr ,不指定的话网络插件 k8s 依然跑步起来。接下来就是等待了,如果部署的过程中报错,附录里面有典型报错的解决办法。

第六步

配置 k8s 。当 k8s 顺利部署上以后,会提示你执行三条命令,这样 kubectl 就能根据配置连接到当前部署的这个 k8s 集群中。代码如下:

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

第七步

应用网络插件,我们这里使用的是比较通用的 flannel 网络插件。网络插件的具体信息请自行 google 。代码如下:

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

第八步

验证安装是否成功。上面的命令执行完以后,稍微等一下,然后执行命令:

kubectl get pods --namespace=kube-system

插件所有 pod 是否都是 running 状态。如果不是 running 状态就需要查看 pod 描述或者 pod 日志 来排查错误,这两条命令分别是:

# 查看pod描述,主要看最下面的events
kubectl -n kube-system describe pod xxxxxxx #pod名称

# 查看pod日志
kubectl -n kube-system logs xxxxxxx # pod名称

至此,k8s 部署完成。之后的 join 请自行 google

附录

所有代码

apt update
apt install -y apt-transport-https ca-certificates curl software-properties-common
#docker源
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

#kubeadm源
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

apt update
apt install -y docker-ce kubeadm

#镜像加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

#1.先下载两个特别的镜像
docker pull coredns/coredns:1.2.6
docker tag coredns/coredns:1.2.6 mirrorgooglecontainers/coredns:1.2.6

wget https://github.com/coreos/flannel/releases/download/v0.11.0/flanneld-v0.11.0-amd64.docker
docker load < flanneld-v0.11.0-amd64.docker

#部署
kubeadm init --image-repository=mirrorgooglecontainers --pod-network-cidr=10.244.0.0/16

#这个跳过
#kubeadm join --token.....

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

#应用网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl get pods --namespace=kube-system

# 下面的命令可选
#设置master也可以部署应用
kubectl taint nodes --all node-role.kubernetes.io/master-
#运行nginx
kubectl run my-app --image=nginx --port=80

kubectl get deployments

#暴露端口
kubectl expose deployment my-app --type=NodePort

kubectl get services

安装错误

1. 安装时报下载镜像失败

这里需要注意报的是下载那个镜像失败,如果是 coredns/coredns 这个镜像,那你应该能发现报错中的镜像版本跟我们下载的镜像版本不同,这说明新版本的 k8s 需要依赖新版本的 coredns/coredns 镜像,按照上面的命令重新下载和重命名新版本镜像即可。其他的情况就只能是网络问题了。

2. 安装时报swap错

k8s 一般不推荐宿主机使用 swap,关闭 swap 即可。也可忽略,方法见第四条。

3. 配置没有达到要求

k8s 会检查系统硬件配置,以保证自身运行顺畅,也可忽略,方法见第四条。

4. 忽略报错继续执行

init 时加上参数 --ignore-preflight-errors 后面跟错误的名称。在重新执行 init 时,请先执行

kubeadm reset

以此消除上一次安装可能产生的影响。

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

推荐阅读更多精彩内容