1,# 临时关闭
sudo swapoff -a
# 永久关闭
sudo vi /etc/fstab
## 第二行注释掉 (注释swap分区)
# /dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0

2,安装docker
sudo apt install docker.io

修改daemon.json文件
sudo vim /etc/docker/daemon.json
#输入以下内容,第一项为镜像源,第二项为驱动,是为了使得其与k8s驱动一致
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}

启动docker
sudo systemctl daemon-reload
sudo systemctl restart docker

3,安装kubelet,kubectl,kubeadm
使得 apt 支持 ssl 传输
sudo apt-get update && sudo apt-get install -y apt-transport-https

下载 gpg 密钥
sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg |sudo apt-key add -

添加 k8s 镜像源(不要更改版本代号)
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

更新源列表
sudo apt-get update

4,安装kube
sudo apt-get install -y kubelet=1.22.5-00 kubeadm=1.22.5-00 kubectl=1.22.5-00
sudo systemctl start kubelet
sudo systemctl enable kubelet

查看镜像列表
kubeadm config images list --kubernetes-version v1.22.5

下载基础镜像
for i in `kubeadm config images list --kubernetes-version v1.22.5`; do
imageName=${i#k8s.gcr.io/}
docker pull registry.aliyuncs.com/google_containers/$imageName
docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done;
会发现有错误,是由于其中一个镜像命名有误,手动拉取。
sudo docker pull registry.aliyuncs.com/google_containers/coredns:v1.8.4
sudo docker tag registry.aliyuncs.com/google_containers/coredns:v1.8.4 k8s.gcr.io/coredns/coredns:v1.8.4
sudo docker rmi registry.aliyuncs.com/google_containers/coredns:v1.8.4

5,执行kubeadm init
sudo kubeadm init \
--ignore-preflight-errors=all \
--apiserver-advertise-address=192.168.80.128 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.22.5 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 \
--v=6

注释:加上 --upload-certs 参数,会输出类似以下,用于添加master节点
kubeadm join 192.168.81.100:6443 --token ocb5tz.pv252zn76rl4l3f6 \
--discovery-token-ca-cert-hash sha256:141bbeb79bf58d81d551f33ace207c7b19bee1cfd7790112ce26a6a300eee5a2 \
--experimental-control-plane --certificate-key 20366c9cdbfdc1435a6f6d616d988d027f2785e34e2df9383f784cf61bab9826 --ignore-preflight-errors=all

此时会报 I0919 20:19:00.148468 7781 round_trippers.go:454] GET https://192.168.80.128:6443/healthz?timeout=10s in 0 milliseconds 类似日志
在等一两分钟
0919 20:19:21.304687 7781 round_trippers.go:454] POST https://192.168.80.128:6443/api/v1/namespaces/kube-system/serviceaccounts?timeout=10s 201 Created in 9 milliseconds
I0919 20:19:21.323945 7781 round_trippers.go:454] POST https://192.168.80.128:6443/api/v1/namespaces/kube-system/configmaps?timeout=10s 201 Created in 14 milliseconds
I0919 20:19:21.419775 7781 round_trippers.go:454] POST https://192.168.80.128:6443/apis/apps/v1/namespaces/kube-system/daemonsets?timeout=10s 201 Created in 71 milliseconds
I0919 20:19:21.440327 7781 round_trippers.go:454] POST https://192.168.80.128:6443/apis/rbac.authorization.k8s.io/v1/clusterrolebindings?timeout=10s 201 Created in 18 milliseconds
I0919 20:19:21.448702 7781 round_trippers.go:454] POST https://192.168.80.128:6443/apis/rbac.authorization.k8s.io/v1/namespaces/kube-system/roles?timeout=10s 201 Created in 8 milliseconds
I0919 20:19:21.454705 7781 round_trippers.go:454] POST https://192.168.80.128:6443/apis/rbac.authorization.k8s.io/v1/namespaces/kube-system/rolebindings?timeout=10s 201 Created in 5 milliseconds
[addons] Applied essential addon: kube-proxy
I0919 20:19:21.456516 7781 loader.go:372] Config loaded from file: /etc/kubernetes/admin.conf
I0919 20:19:21.457900 7781 loader.go:372] Config loaded from file: /etc/kubernetes/admin.conf

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

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf

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.80.128:6443 --token cafgtj.u77ynf6ep78q7jd4 \
--discovery-token-ca-cert-hash sha256:5fa4568505cb947d6e684b2ea5e5ba17d6f70d86ddee7a36573a496ffd8e58f9 ###这个需要记录,用于其他计算节点加入集群

添加当前系统用户kubectl控制权限
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

注释:在其他node计算节点上部署加入集群时,到了执行kubeadm init 这一步时,不用执行kubeadm init,直接执行sudo kubeadm join 既可加入集群

6,搭建calico网络
k8s可以选择flannel 网络、calico网络等多种管理集群的网络。calico性能较好
wget https://docs.projectcalico.org/manifests/calico.yaml
#可以修改为自定义ip,默认是192.168.0.0/16,需要与上面配置时相同
#sed -i 's/192.168.0.0\/16/10.244.0.0\/16/g' calico.yaml
sudo kubectl apply -f calico.yaml

7,查看
kubectl -n kube-system get pods # 查看所有基础组件是否Running状态
kubectl get nodes 查看节点是否Ready状态
kubectl get all 查看集群状态

8,配置kubectl命令自动补全
安装bash-completion工具
sudo apt install bash-completion

执行bash_completion
source /usr/share/bash-completion/bash_completion

加载kubectl completion
#在bash 中设置当前 shell 的自动补全(切换终端后会失效)
source <(kubectl completion bash)

#在bash shell 中永久的添加自动补全(永久有效,不受切换终端影响)
echo "source <(kubectl completion bash)" >> ~/.bashrc

参考:https://blog.csdn.net/weixin_51969975/article/details/126307397

搜索

复制

k8s-v1.22.5部署文档(ubuntu1804)的更多相关文章

  1. Ceph分布式存储(luminous)部署文档-ubuntu18-04

    Ceph分布式存储(luminous)部署文档 环境 ubuntu18.04 ceph version 12.2.7 luminous (stable) 三节点 配置如下 node1:1U,1G me ...

  2. Apache kafka v1.0.0 部署文档

    简介: Apache Kafka 是一个 Scala 语言编写的可扩展.分布式.高性能的容错消息发布.订阅系统. 官网地址:http://kafka.apache.org 中文教程:http://ww ...

  3. centos6 Cacti部署文档

    centos6 Cacti部署文档 1.安装依赖 yum -y install mysql mysql-server mysql-devel httpd php php-pdo php-snmp ph ...

  4. keepalived双机热备,安装部署文档

    keepalived双击热备,安装部署文档: 下载目录:/apps/keepalived-1.2.7.tar.gz 1:---> yum install -y make wget 2:---&g ...

  5. HDFS NameNode HA 部署文档

    简介: HDFS High Availability Using the Quorum Journal Manager Hadoop 2.x 中,HDFS 组件有三个角色:NameNode.DataN ...

  6. PPTP部署文档

    PPTP部署文档 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 前言:这款VPN部署起来特别简单,想对OPENVON配 ...

  7. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  8. supervisor 部署文档

    supervisor 部署文档 supervisor 需要Python支持,如果不用系统的supervisor,单独安装python python 安装 #依赖 yum install python- ...

  9. HP DL160 Gen9服务器集群部署文档

    HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server        Memo ...

  10. Sqlserver2008安装部署文档

    Sqlserver2008部署文档 注意事项: 如果你要安装的是64位的服务器,并且是新机器.那么请注意,你需要首先需要给64系统安装一个.net framework,如果已经安装此功能,请略过这一步 ...

随机推荐

  1. Linux环境Docker使用代理推拉镜像

    闲扯几句 不知不觉已经2月中了,1个半月忙得没写博客,这篇其实很早就想写了(可追溯到Docker刚刚无法拉镜像的时候),由于工作和生活上的事比较多又在备考软考架构,拖了好久-- 简单记录下怎么做的,以 ...

  2. 如何让N1盒子、机顶盒开机从优盘启动进入刷机流程

    疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 准备阶段 1.下载我的从优盘启动的工具包 2.确认你 ...

  3. 单元测试三部曲-AAA模式

    AAA 指的是 "Arrange, Act, Assert",这是一种通用的单元测试模式. 在测试方法中, 1.首先对测试对象进行准备(Arrange), 2.然后调用要测试的方法 ...

  4. RedHat8密码复杂度策略配置

    1.密码复杂度策略概念 在Linux系统中,确保用户密码的复杂度是提高系统安全性的重要措施之一.通过配置密码策略,可以强制用户使用强密码,从而降低被破解的风险.本文将详细介绍如何在 Linux 系统中 ...

  5. WPF如何使用WebView,并且禁用F12和F5。

    客户端套浏览器壳,是如今比较浏览的客户端客户端开发方式.这篇文字简单来介绍一下如何在WPF中使用WebView 安装WebView的nuget包 可以直接执行安装命令 Install-Package ...

  6. 关于centos 7安装binwalk的过程中产生的问题

    啊,kali机坏了,又安的centos o(╥﹏╥)o 但是centos没有binwalk,它也不能像kali机一样之间install 又在网上搜教程 https://blog.csdn.net/qq ...

  7. PaddleOCR学习笔记3-通用识别服务

    今天优化了下之前的初步识别服务的python代码和html代码. 采用flask + paddleocr+ bootstrap快速搭建OCR识别服务. 代码结构如下: 模板页面代码文件如下: uplo ...

  8. 如何设置家用威联通 NAS UPS 断电后自动关机并通知其他设备?

    场景 备注: 求轻喷, 求放过. 我真的是个理线方面的白痴. 这已经是我的极限了. 我的家庭实验室 Homelab 服务器集群配置如下. 上半部分之前已经介绍过了, 这里就不再赘述了. 今天重点介绍介 ...

  9. Qt/C++开发经验小技巧311-315

    关于流媒体推拉流延时的几点说明. 经常看到一些流媒体相关的程序,号称零延迟,不用怀疑,这肯定吹牛逼的. 搞音视频开发,有个核心的指标就是实时性,也就是延迟多少毫秒,这个问题问的也是最多的. 音视频文件 ...

  10. 【Linux】Vim 设置

    [Linux]Vim 设置 零.起因 刚学Linux,有时候会重装Linux系统,然后默认的vi不太好用,需要进行一些设置,本文简述如何配置一个好用的Vim. 壹.软件安装 sudo apt-get ...