k8s-v1.22.5部署文档(ubuntu1804)
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)的更多相关文章
- Ceph分布式存储(luminous)部署文档-ubuntu18-04
Ceph分布式存储(luminous)部署文档 环境 ubuntu18.04 ceph version 12.2.7 luminous (stable) 三节点 配置如下 node1:1U,1G me ...
- Apache kafka v1.0.0 部署文档
简介: Apache Kafka 是一个 Scala 语言编写的可扩展.分布式.高性能的容错消息发布.订阅系统. 官网地址:http://kafka.apache.org 中文教程:http://ww ...
- centos6 Cacti部署文档
centos6 Cacti部署文档 1.安装依赖 yum -y install mysql mysql-server mysql-devel httpd php php-pdo php-snmp ph ...
- keepalived双机热备,安装部署文档
keepalived双击热备,安装部署文档: 下载目录:/apps/keepalived-1.2.7.tar.gz 1:---> yum install -y make wget 2:---&g ...
- HDFS NameNode HA 部署文档
简介: HDFS High Availability Using the Quorum Journal Manager Hadoop 2.x 中,HDFS 组件有三个角色:NameNode.DataN ...
- PPTP部署文档
PPTP部署文档 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 前言:这款VPN部署起来特别简单,想对OPENVON配 ...
- hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档
相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...
- supervisor 部署文档
supervisor 部署文档 supervisor 需要Python支持,如果不用系统的supervisor,单独安装python python 安装 #依赖 yum install python- ...
- HP DL160 Gen9服务器集群部署文档
HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server Memo ...
- Sqlserver2008安装部署文档
Sqlserver2008部署文档 注意事项: 如果你要安装的是64位的服务器,并且是新机器.那么请注意,你需要首先需要给64系统安装一个.net framework,如果已经安装此功能,请略过这一步 ...
随机推荐
- IPMITool 工具使用详细教程
IPMITool 工具使用详细教程 一.IPMI 与 IPMITool 简介 1. IPMI 概述 智能平台管理接口(Intelligent Platform Management Interface ...
- AD22 solder层开窗不见了什么原因?PCB阻焊层不显示阻焊。
做回来的板子焊盘没有开窗! 3D上看也是没有的! 上网查了,在设计->规则->Mask->SolderMaskExpansion 将盖油勾选去掉即可. END
- QT5笔记: 15. 其他显示组件的常用功能
其他显示组件的常用功能 代码 #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget ...
- Hive - [01] 概述
一.Hive是什么 是Facebook开源,用于解决海量结构化日志的数据统计工具. 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. Hive处理的数 ...
- Flink学习(十二) Sink到JDBC(可扩展到任何关系型数据库)
导入依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java& ...
- SM系列国密算法
其中SM1.SM4.SM7.祖冲之密码(ZUC)是对称算法:SM2.SM9是非对称算法:SM3是哈希算法.目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现. 一.SM1 ...
- .net core 非阻塞的异步编程 及 线程调度过程
本文主要分为三个部分: 1.语法格式 2.线程调度情况 3.编程注意事项 4.练一练 * 阅读提示 :鼠标悬停在 章节标题 上可见 文章目录 异步编程(Task Asynchronous Progra ...
- LLM生成代码后,如何一键合并到源代码中(FastApply技术研究)
背景 在大语言模型越来越火的今天,越来越多的应用场景开始使用大语言模型来解决实际问题.而辅助编程可以算是大语言模型应用得最成功的场景之一了.早先的时候,更多使用的还是代码补全的能力,但是现在,各家产品 ...
- 【Matlab函数】提取inp文件中的节点、单元数据并保留集合信息
功能 提取hypermesh2020(其他版本也可以)中的节点.单元信息,并保留elem set信息. 返回的是一个结构体 输入输出参数 输入: inp文件路径,如:'example.inp'.&qu ...
- 【MATLAB习题】四杆机构的运动学参数求解
1.问题描述 2. 推导过程 3. matlab代码 最新版代码 直接采用求微分的方式得到角度,角速度等数值解,速度慢,但是代码少,容易看懂(矩阵看起来真难受). 以前做的一个博客文章用的是矩阵运算求 ...