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. 自适应 Simpson 积分法学习笔记

    自适应 Simpson 积分法,是一种计算一段区间内,形态奇怪的函数和的算法,例如面积并和难以直接用通项公式计算的函数. Simpson 积分 我们都知道,求解微积分需要求解一个导数的原函数,但这显然 ...

  2. LCD显示器的接口协议

    简介LCD的接口有多种,常用的LCD的连接方式有如下几种:MCU(MPU)模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式,MIPI模式,LVDS模式,TTL模式,EDP模式. ...

  3. Android应用借助LinearLayout实现垂直水平居中布局

    首先说的是LinearLayout布局下的居中一般是这样的: (注意:android:layout_width="fill_parent" android:layout_heigh ...

  4. oracle - [01] 安装部署

    超级详细的Oracle安装图文详解!手把手教会您从下载到安装! https://blog.csdn.net/weixin_46329056/article/details/125451601

  5. flutter - [02] 基本语法

    题记部分 一.注释 ///这是一个注释 //这也是个注释 /* 这还是个注释 */ void main(List<String> args) { print ('你好 dart'); } ...

  6. oracle - [11] 那些年使用的emp表和dept表

    那些年在学习编程时,Oracle自带的emp表和dept表,本文进行整理和记录,以便于在今后的学习和工作中作为示例数据. 雇员表(emp) CREATE TABLE EMP( EMPNO NUMBER ...

  7. Scala查看源码

    package com.wyh.day01 /** * 1.代码格式化的快捷键 ctrl+alt+L\ * 2.scala查看源代码的快捷键 ctrl+b */ object ScalaLookSou ...

  8. MySQL数据库datetime类型不能为空值的问题

    修改mysql的配置文件:my.ini 将其只的: sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUT ...

  9. 探秘Transformer之(8)--- 位置编码

    探秘Transformer之(8)--- 位置编码 0x00 概述 位置编码(Positional Embedding)是一种用于处理序列数据的技术,被用来表示输入序列中的单词位置.在Transfor ...

  10. php连接sql server 2014踩坑及处理记录

    1.PDOException: SQLSTATE[42S02]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]对象名 'dbotest' ...