一、概述

由于业务需求,需要安装版本比较高的k8s,比如:1.20.0

二、环境介绍

操作系统:ubuntu-18.04.6-server-amd64

配置:2核3g

ip地址:192.168.1.12

主机名:k8smaster

操作系统:ubuntu-18.04.6-server-amd64

配置:2核4g

ip地址:192.168.1.13

主机名:k8snode1

基础环境配置

安装docker

apt-get install docker.io

如果需要配置为开机启动,可执行以下命令

systemcd enable docker
systemcd start docker

配置 Docker 镜像加速,编辑配置文件

vi /etc/docker/daemon.json

内容如下:

{"registry-mirrors": ["https://registry.docker-cn.com"]
}

重启 Docker,使配置生效

sudo systemctl daemon-reload
sudo systemctl restart docker

修改主机名

比如修改master节点的,注意主机名不要带有特殊字符。

hostnamectl set-hostname k8smaster

添加hosts文件

192.168.1.12 k8smaster
192.168.1.13 k8snode1

关闭swap

临时关闭

swapoff -a

永久关闭

修改 /etc/fstab 文件,注释掉 SWAP 的自动挂载(永久关闭swap,重启后生效)

# 注释掉以下带有swap字段的一行
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

三、安装kubeadm,kubelet,kubectl

添加更新源,修改文件

vi /etc/apt/sources.list

最后一行增加

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

安装 https 工具以及 k8s

apt-get update && apt-get install -y apt-transport-https curl
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add
apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated

下载镜像

由于初始化时,需要连接到google,所以可能无法下载内容。

我们可以通过使用 kubeadm config images list 命令,列举需要拉取的镜像。我们来手动通过 Docker 拉取。这个过程比较麻烦,还需要手动修改镜像名称。

拉取方法 docker pull {镜像名称}

Google 访问不了,不过 DockerHub 已经备份好需要的镜像。

mirrorgooglecontainers 这个仓库备份了相应的镜像。遗憾的是,镜像不一定都是最新的备份。阿里云上面的 google_containers 仓库应该是备份最新的。

新建脚本pullk8s.sh,内容如下:

for  i  in  `kubeadm config images list`;  doimageName=${i#k8s.gcr.io/}docker pull registry.aliyuncs.com/google_containers/$imageNamedocker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageNamedocker rmi registry.aliyuncs.com/google_containers/$imageName
done;

执行脚本

bash pullk8s.sh

初始化

请根据实际情况,修改kubernetes-version和apiserver-advertise-address参数。

kubernetes-version是k8s版本,apiserver-advertise-address是k8s master节点ip

kubeadm init --kubernetes-version=1.20.0 --apiserver-advertise-address=192.168.1.12 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.222.0.0/16 --ignore-preflight-errors=Swap --ignore-preflight-errors=NumCPU

初始化成功后,会输出一段信息,注意自己保存好。

配置kubectl工具

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

安装flannel

使用谷歌浏览器下载文件,地址如下:

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

将yaml文件上传到linux,然后执行安装

kubectl apply -f kube-flannel.yml

设置开机启动

systemctl enable kubelet

命令补全

apt-get install -y bash-completionsource <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source  ~/.bashrc

四、node加入集群

注意:node节点,只需要安装docker和kubeadm,kubelet,kubectl即可。

注意主机名已经修改正确,加入节点

kubeadm join 192.168.1.12:6443 --token sx0dph.jthe8rswjpozchsu \--discovery-token-ca-cert-hash sha256:f5325f7abf26ad375e139e231e587848c3ec41270f7bef2828b8adf428c3bc92 

登录master节点,查看

root@k8smaster:~# kubectl get nodes
NAME        STATUS   ROLES                  AGE     VERSION
k8smaster   Ready    control-plane,master   3h38m   v1.20.0
k8snode1    Ready    <none>                 3h10m   v1.20.0

五、使用yaml发布应用

以flaskapp为例子

登录k8smaster执行

flaskapp-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: flaskapp-1
spec:selector:matchLabels:run: flaskapp-1replicas: 1template:metadata:labels:run: flaskapp-1spec:containers:- name: flaskapp-1image: jcdemo/flaskappports:- containerPort: 5000

View Code

flaskapp-service.yaml

apiVersion: v1
kind: Service
metadata:name: flaskapp-1labels:run: flaskapp-1
spec:type: NodePortports:- port: 5000name: flaskapp-porttargetPort: 5000protocol: TCPnodePort: 30005selector:run: flaskapp-1

View Code

加载yml文件

kubectl apply -f flaskapp-service.yaml
kubectl apply -f flaskapp-deployment.yaml 

查看pod状态

root@k8smaster:~# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
flaskapp-1-84fbb4f499-646rw   1/1     Running   2          172m

等待几分钟,确保为Running状态

访问页面

使用master ip+nodeport访问

http://192.168.1.12:30005/

效果如下:

本文参考链接:https://www.cnblogs.com/bruce1992/p/15849111.html

ubuntu安装Kubernetes1.20.0相关推荐

  1. Ubuntu安装MySQL 8.0 - APT(结尾附视频)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  2. Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.

    此文首发于我的个人博客:Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/r ...

  3. acrobat linux 下载地址,在ubuntu安装Adobe Acrobat7.0

    在ubuntu安装Adobe Acrobat7.0 发布时间:2007-03-17 01:11:11来源:红联作者:Gpoyinsnbo 首先,安装Adobe Reader吧.在"sudo ...

  4. centos/Ubuntu安装python3.7.0安装mysql5.7/5.6

    Python3.7 1. 下载安装所需要的包,不然安装时或者以后使用python时报错 yum install -y libffi-devel zlib-devel bzip2-devel opens ...

  5. Ubuntu 安装 Tomcat 7.0.40

    来源:http://www.cnblogs.com/rayz/archive/2013/05/20/3089302.html 因为源上的版本问题,所以没有使用源上的自动安装包,老规矩,Tomcat 7 ...

  6. Ubuntu18使用kubeadm安装kubernetes1.12

    2019独角兽企业重金招聘Python工程师标准>>> 安装前准备 virtualbox安装三个Ubuntu虚拟机 k8s-master 和 k8s-slave1.k8s-slave ...

  7. linux下安装虚拟天文馆,如何在Ubuntu 20.04、18.04中安装Stellarium 0.20.0虚拟天文馆

    如何在Ubuntu 20.04.18.04中安装Stellarium 0.20.0虚拟天文馆 几天前发布了Stellarium 0.20.0,它时一个免费开源的桌面虚拟天文馆软件.以下是在Ubuntu ...

  8. 如何在 Ubuntu 20.04 上安装 Wine 6.0

    过渡到 Linux 的用户的担忧之一是他们是否可以在 Linux 上运行自己喜欢的应用程序.这些范围可以从 Windows 游戏和简单的应用程序软件.值得庆幸的是,Wine 允许用户在 Linux/U ...

  9. Ubuntu 16.04卸载CUDA 6.5和安装CUDA 8.0

    一,引言 由于系统从Ubuntu 14.04升级到了16.04,原来的CUDA 6.5无法继续使用,所以重新安装了CUDA 8.0. 二,卸载CUDA 6.5 和驱动 以下操作都在命令行界面操作,比如 ...

最新文章

  1. 微信关闭html5游戏吗,5月20日起,微信将彻底关闭这个功能!
  2. 测试人员必学的软件快速测试方法(三)
  3. halcon入门_visionpro和halcon这两款机器视觉软件区别
  4. socket网络编程——多进程、多线程处理并发
  5. RFID图书管理系统程序源代码(转)
  6. 一、Vue基础语法学习笔记系列——插值操作(Mustache语法、v-once、v-html、v-text、v-pre、v-cloak)、绑定属性v-bind(绑定class、style)、计算属性
  7. Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...
  8. 数量词a lot of、much、many、a little、a few_29
  9. Android网络库的比较:OkHTTP,Retrofit和Volley [关闭]
  10. 向园子里的朋友探讨一个问题:如果判定一个对象已被处置
  11. 用python把unix格式转换成windows格式
  12. Python编程基础 一张图认识Python
  13. android 图片处理器-包括反转、浮雕、锐化、轮廓提取功能
  14. 黑客X档案 2002~2007 NPM、PYPI、DockerHub 备份
  15. python微信机器人
  16. Codeforces-785-D(范德蒙恒等式)
  17. 不想在网易博客写技术文章了
  18. python替换word内容,文档翻译-使用python替换word文档中的段落内容
  19. C语言递归函数实现十位数转换进制并打印出来(超详细)
  20. 程序员副业之如何利用空余时间从博客中赚钱?

热门文章

  1. matlab解不定,matlab解不定方程
  2. Redis11_缓存穿透和雪崩
  3. 通常所说微型计算机中的奔3,《计算机应用基础》复习资料
  4. 前端之路之mac PS的安装破解
  5. Soft Labels for Ordinal Regression阅读笔记
  6. 微信小程序真机调试常见问题汇总
  7. 外国人怎么样学计算机,适合外国人学中文的打字法
  8. s32k118开发环境搭建
  9. 强大免费的在线格式转换工具,三步轻松完成。
  10. hadoop分布式安装部署具体视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)...