k8s+containerd安装
准备环境
准备两台服务器节点,如果需要安装虚拟机,可以参考《wmware和centos安装过程》
| 机器名 | IP | 角色 | CPU | 内存 |
|---|---|---|---|---|
| centos01 | 192.168.109.130 | master | 4核 | 2G |
| centos02 | 192.168.109.131 | node | 4核 | 2G |
设置主机名,所有节点都执行
vim /etc/hosts
#增加
192.168.109.130 centos01
192.168.109.131 centos02
关闭防火墙,所有节点都执行
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
#修改SELINUX的值
SELINUX=disabled
关闭swap内存,所有节点都执行
swapoff -a
vim /etc/fstab
# 将该行注释掉
#/dev/mapper/cs-swap swap
配置网桥,所有节点都执行
1.修改参数
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
2.然后,加载如下两个模块,所有节点都执行
modprobe ip_vs_rr
modprobe br_netfilter
3.生效配置
[root@centos01 opt]# sysctl -p
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
安装containerd
以下步骤所有节点都执行。
安装
wget https://github.com/containerd/containerd/releases/download/v1.7.2/containerd-1.7.2-linux-amd64.tar.gz
tar Cxzvf /usr/local containerd-1.7.2-linux-amd64.tar.gz
修改配置
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.toml
#SystemdCgroup的值改为true
SystemdCgroup = true
#由于国内下载不到registry.k8s.io的镜像,修改sandbox_image的值为:
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
启动服务
mkdir -p /usr/local/lib/systemd/system
wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
mv containerd.service /usr/local/lib/systemd/system
systemctl daemon-reload
systemctl enable --now containerd
验证安装
[root@centos01 opt]# ctr version
Client:
Version: v1.7.2
Revision: 0cae528dd6cb557f7201036e9f43420650207b58
Go version: go1.20.4
Server:
Version: v1.7.2
Revision: 0cae528dd6cb557f7201036e9f43420650207b58
UUID: 747cbf1b-17d4-4124-987a-203d8c72de7c
安装runc
以下步骤所有节点都执行。
准备文件
wget https://github.com//opencontainers/runc/releases/download/v1.1.7/runc.amd64
chmod +x runc.amd64
查找containerd安装时已安装的runc所在的位置,如果不存在runc文件,则直接进行下一步
[root@centos01 opt]# which runc
/usr/bin/runc
替换上一步的结果文件
mv -f runc.amd64 /usr/bin/runc
验证安装
[root@centos01 opt]# runc -v
runc version 1.1.7
commit: v1.1.7-0-g860f061b
spec: 1.0.2-dev
go: go1.20.3
libseccomp: 2.5.4
安装kubernetes
添加阿里云的kubernetes源,所有节点都执行
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装最新版,所有节点都执行
yum install -y kubeadm kubelet kubectl
开机自启动,所有节点都执行
systemctl enable kubelet
验证安装,所有节点都执行
[root@centos01 opt]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.1", GitCommit:"4c9411232e10168d7b050c49a1b59f6df9d7ea4b", GitTreeState:"clean", BuildDate:"2023-04-14T13:20:04Z", GoVersion:"go1.20.3", Compiler:"gc", Platform:"linux/amd64"}
初始化集群,仅在master(centos01)上执行
[root@centos01 opt]# kubeadm init --apiserver-advertise-address 192.168.109.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.27.1 --pod-network-cidr=10.244.0.0/16
...
...
...
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.109.130:6443 --token osh87v.zvo010kamsr8esmp \
--discovery-token-ca-cert-hash sha256:ff4607c7c194e9f756b1eb509e64d2d926b5f8f9556a85c3c14a2d25add28230
其中,
–apiserver-advertise-address:通告侦听地址
–image-repository:指定镜像地址使用阿里云的,默认会使用谷歌镜像
–kubernetes-version:指定当前的kubernetes的版本
–pod-network-cidr=10.244.0.0/16:flannel网络的固定地址范围
仔细阅读kubeadm init执行的结果,根据提示,还需要进行3步操作
1.笔者用的是root用户,仅在master节点执行
[root@centos01 opt]# vim /etc/profile
#在最后一行增加
export KUBECONFIG=/etc/kubernetes/admin.conf
生效环境变量
[root@centos01 opt]# source /etc/profile
2.安装网络插件,可以选择calico或flannel,这里选择安装flannel,仅在master节点执行
下载安装文件
[root@centos01 opt]# wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
修改配置
[root@centos01 opt]# vim kube-flannel.yml
#修改Network项的值,改为和--pod-network-cidr一样的值
"Network": "10.244.0.0/16"
#由于有时国内网络的问题,需要修改image的地址,把所有的docker.io改为dockerproxy.com
#共需要修改3处,两个值
image: dockerproxy.com/flannel/flannel:v0.22.0
image: dockerproxy.com/flannel/flannel-cni-plugin:v1.1.2
安装网络插件
[root@centos01 opt]# kubectl apply -f kube-flannel.yml
验证安装
[root@centos01 opt]# kubectl get pods -n kube-flannel
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-dfngh 1/1 Running 17 (13m ago) 6d1h
kube-flannel-ds-qll8g 1/1 Running 12 (13m ago) 6d1h
3.其他节点加入集群,非master节点都执行
[root@centos02 opt]# kubeadm join 192.168.109.130:6443 --token osh87v.zvo010kamsr8esmp --discovery-token-ca-cert-hash sha256:ff4607c7c194e9f756b1eb509e64d2d926b5f8f9556a85c3c14a2d25add28230
验证安装结果,仅在master节点执行
[root@centos01 opt]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
centos01 Ready control-plane 134m v1.27.1
centos02 Ready <none> 133m v1.27.1
[root@centos01 opt]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-7bdc4cb885-l4vs2 1/1 Running 0 9m3s
coredns-7bdc4cb885-wzc8x 1/1 Running 0 9m3s
etcd-centos01 1/1 Running 0 9m18s
kube-apiserver-centos01 1/1 Running 0 9m18s
kube-controller-manager-centos01 1/1 Running 0 9m19s
kube-proxy-m92hr 1/1 Running 0 28s
kube-proxy-pv4hw 1/1 Running 0 9m3s
kube-scheduler-centos01 1/1 Running 0 9m18s
建议重启一遍所有服务器节点,有可能会暴露出来隐藏的问题,再次验证以上结果,仍然正常。
至此完成安装,接下来可以部署应用了,推荐一个平台:https://gitee.com/i512team/dhorse,是一个简单易用、以应用为中心的云原生DevOps系统,具有持续集成、持续部署、微服务治理等功能,主要特点:部署简单、操作简洁、功能快速。
k8s+containerd安装的更多相关文章
- kubernetes(k8s) helm安装kafka、zookeeper
通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...
- 使用k8s operator安装和维护etcd集群
关于Kubernetes Operator这个新生事物,可以参考下文来了解这一技术的来龙去脉: https://yq.aliyun.com/articles/685522?utm_content=g_ ...
- 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法
目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...
- 国内不fq安装K8S二: 安装kubernet
目录 2 安装kubelet 2.1 环境准备 2.2 设置国内的源 2.3 重要的设置 2.4 获取镜像 2.5 使用kubeadm init初始化集群 2.6 安装Pod Network 2.7 ...
- 国内不fq安装K8S一: 安装docker
目录 1.安装docker 1.1 准备工作 1.2 安装docker 1.3 修改cgroup 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国内不fq ...
- [转帖]容器云之K8s自动化安装方式的选择
容器云之K8s自动化安装方式的选择 时间 2016-12-05 19:10:53 极客头条 原文 http://geek.csdn.net/news/detail/127426 主题 Kubern ...
- Kubernetes(k8s)完整安装教程
Kubernetes(k8s)完整安装教程 2019-08-27 2.3k 记录 发表评论 目录 1 安装 1.1 安装 Docker 1.2 安装 VirtualBox 1.3 安装 kubect ...
- k8s Docker 安装
k8s Docker 安装 一.运行环境 Centos 7.7 虚拟机内核为 3.10 基础组件版本: k8s.gcr.io/kube-apiserver:v1.16.0 k8s.gcr.io/kub ...
- k8s上安装elasticsearch集群
官方文档地址:https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html yaml文件地址:https://dow ...
- 在k8s上安装Harbor
在k8s上安装Harbor 先前条件 <kubernetes(k8s) 存储动态挂载><在k8s(kubernetes)上安装 ingress V1.1.3> 参考我之前的文档 ...
随机推荐
- Linux redhat7.2 制作u盘问题总结
Linux redhat7.2 制作u盘问题总结 其实呢,觉得本来没必要写一篇关于装系统的文章,毕竟我觉得大多数搞it的人都会,比如win10.ubuntu做个启动盘啥的应该都会,但是说实在的今天 ...
- 【图解算法使用C++】1.2 生活中的算法
图解算法使用C++ 一.计算思维与程序设计 1.2 生活中到处都是算法 计算最大公约数(辗转相除法) // C++ #include<iostream> #include<stdio ...
- 「学习笔记」tarjan求最近公共祖先
Tarjan 算法是一种 离线算法,需要使用并查集记录某个结点的祖先结点. 并没有传说中的那么快. 过程 将询问都记录下来,将它们建成正向边和反向边. 在 dfs 的过程中,给走过的节点打上标记,同时 ...
- 计算机网络之MAC和IP地址
MAC地址 在局域网中,硬件地址,又称为物理地址或MAC地址. 目前现在的局域网中实际上使用的都是6字节的MAC地址,所以每一个以太网设备都具有唯一的MAC地址. MAC地址的格式 假设传输使用的是I ...
- 打开conda环境报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x9a in position 317: illegal multibyt
解决打开conda环境报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 317: illegal multib ...
- Java代码读取properties配置文件
读取properties配置文件 package com.easycrud.utils; import java.io.IOException; import java.io.InputStream; ...
- (数据科学学习手札152)geopandas 0.13版本更新内容一览
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,昨天晚上geopandas正式 ...
- 【HTML-CSS】div中加入icon后input标签占用不满问题
做登录表单时遇到了一个宽度控制不好的问题,放入图标后,input框总是无法正确的填满剩余空间(尺寸过大/过小) 原因是input元素和父元素div宽度都写死的问题 把父元素的高度删除,宽度改成max- ...
- 张量(Tensor)、标量(scalar)、向量(vector)、矩阵(matrix)
张量(Tensor):Tensor = multi-dimensional array of numbers 张量是一个多维数组,它是标量,向量,矩阵的高维扩展 ,是一个数据容器,张量是矩阵向任意维度 ...
- 数据治理之关键环节元数据管理开源项目datahub探索
@ 目录 概述 定义 核心功能 概念 元数据应用 其他开源 架构 概览 组件 元数据摄取架构 服务体系结构 本地部署 环境要求 安装 摄取样例 摄取入门 介绍 核心概念 命令行MySQL摄取示例 配置 ...