ubuntu 22.04安装 docker,k8s,rancher

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 各软件版本ubuntu 22.04 | docker 最新 | k8s v1.26.0 | rancher:v.2.7.1 |calico v3.25.0 |

一  环境设置

1.hostname配置
vim /etc/hosts
2.关闭swap分区
swapoff -a && sysctl -w vm.swappiness=0
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
3.设置时区
timedatactl
timedatectl set-timezone Asia/Shanghai

二  安装docker

sudo apt-get -y install apt-transport-https ca-certificates 
curl software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | 
sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-cache madison docker-ce
apt install docker-ce

2.2 在**/etc/docker/daemon.json**中写入如下内容(如果文件不存在请新建该文件)

{
  "registry-mirrors": ["https://njxt9r87.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


2.3 重新安装containerd

sudo systemctl stop containerd.service
sudo cp /etc/containerd/config.toml /etc/containerd/config.toml.bak
sudo containerd config default > $HOME/config.toml
sudo cp $HOME/config.toml /etc/containerd/config.toml
# 修改 /etc/containerd/config.toml 文件后,要将 docker、containerd 停止后,再启动
sudo sed -i "s#registry.k8s.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g" /etc/containerd/config.toml
# https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#containerd-systemd
# 确保 /etc/containerd/config.toml 中的 disabled_plugins 内不存在 cri
sudo sed -i "s#SystemdCgroup = false#SystemdCgroup = true#g" /etc/containerd/config.toml
sudo systemctl enable --now containerd.service

三  haproxy和keepalived

check_apiserver.sh文件:

#!/bin/bash
err=0
for k in $(seq 1 3)
do
  check_code=$(pgrep haproxy)
  if [[$check_code == ""]]; then
    err=$(expr $err + 1)
    sleep 1
    continue
  else
    err=0
    break;
  fi
done
if [[ $err != "0"]]; then
  echo "systemctl stop keepalived"
  /usr/bin/systemctl stop keepalived
  exit 1
else
  exit 0
fi

keepalived.conf文件:

!Configuration File for keepalived
global_defs {
  router_id LVS_DEVEL
script_user root
  anable_script_security
}
vrrp_script chk_apiserver {
  script "/etc/keepalived/check_apiserver.sh"
  interval 5
  weight -5
  fall 2
rise 1
}
vrrp_instance VI_1 {
  state MASTER
  interface ens33 # localhost name
  mcast_src_ip 192.168.189.101
  virtual_router_id 51
  priority 101
  advert_int 2
  authentication {
    auth_type PASS
    auth_pass K8SHA_KA_AUTH
  }
  virtual_ipaddress {
    192.168.189.210
  }
  track_script {
    chk_apiserver
  }
}

再执行下面的命令:

systemctl daemon-reload
systemctl enable --now haproxy
systemctl enable --now keepalived

四 安装k8s

1.kubeadm工具安装

apt-get install -y kubelet kubeadm kubectl(当时默认v.1.26.3)
systemctl daemon-reload
systemctl restart kubelet
systemctl enable kubelet

2.kubeadm安装k8s(1maser,1node)

1.下载所需镜像
kubeadm config images list --kubernetes-version=v1.26.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.26.0
2.初始化参数
kubeadm config print init-defaults > kubeadm-config.yaml  #初始化参数
3.修改kubeadm里面 
imageRepository:registry.cn-hangzhou.aliyuncs.com/google_containers
KubenetesVersion: v1.26.0
4.安装
kubeadm init --config /root/kubeadm-config.yaml --upload-certs
5.在master上面执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl cluster-info
6.在node上面执行
kubeadm join 192.168.189.101:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:10316337f3794d540d5a91d92839bc591921b6a616968bcbdf00910c8e3564b8
7.在另一台master上面
kubeadm join 192.168.189.101:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:10316337f3794d540d5a91d92839bc591921b6a616968bcbdf00910c8e3564b8 \
        --control-plane --certificate-key 80e1b22968b8189e512466c2f13426769ec0f9f47fac3158d705b4af0467179e

五  安装calico

curl --no-check-certificate https://projectcalico.docs.tigera.io/archive/
      v3.25/manifests/calico.yaml >> calico.yaml
kubectl apply -f calico.yaml

六  安装rancher

docker run -d --restart=unless-stopped 
           --privileged=true 
           -v /data/rancher:/var/lib/rancher/ 
           -p 8081:80 -p 8443:443 
           rancher/rancher:v2.7.1;


6.1 ubuntu22.04  安装 rancher 报[FATAL] k3s exited with: exit status 1错误

修改 /etc/default/grub 文件

添加  GRUB_CMDLINE_LINUX="cgroup_memory=1 cgroup_enable=memory swapaccount=1 systemd.unified_cgroup_hierarchy=0"
sudo update-grub
sudo reboot

6.2

netstat -tlnp|grep 8443 # 查看8443端口情况



参考:https://www.jianshu.com/p/e5920bac279e

https://cloud.tencent.com/developer/article/2104804

https://blog.csdn.net/TvTooOO/article/details/128904429

https://blog.csdn.net/qq_32596527/article/details/127735327(重点推荐k8s安装)

https://www.bookstack.cn/read/rancher-2.4.8-zh/746f4f29e1a4766a.md(删除rancher)

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2天前
|
Kubernetes Cloud Native 持续交付
云原生之旅:Docker容器化与Kubernetes集群管理
【9月更文挑战第33天】在数字化转型的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本篇文章将作为你的航海指南,从Docker容器化的基础讲起,直至Kubernetes集群的高级管理,我们将一起探索云原生的奥秘。你将学习到如何封装应用、实现环境隔离,以及如何在Kubernetes集群中部署、监控和扩展你的服务。让我们启航,驶向灵活、可伸缩的云原生未来。
|
4天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。
|
9天前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
29 4
|
19天前
|
Kubernetes Cloud Native 开发者
云原生入门:从Docker到Kubernetes的旅程
【9月更文挑战第16天】 本文将带你进入云原生的世界,从理解Docker容器的基础开始,逐步深入到Kubernetes集群管理。我们将通过简单的代码示例和实际操作,探索这两个关键技术如何协同工作,以实现更高效、灵活的应用程序部署和管理。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供清晰的指导和实用的知识。
51 11
|
15天前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
29 1
|
22天前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
7天前
|
存储 Kubernetes Docker
深入探索容器化技术:Docker 实战与 Kubernetes 管理
深入探索容器化技术:Docker 实战与 Kubernetes 管理
21 0
|
1天前
|
Kubernetes Cloud Native Ubuntu
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第65天】本文将带你进入云原生的世界,通过一步步指导如何在本地环境中搭建Kubernetes集群,并部署一个简单的应用。我们将使用Minikube和Docker作为工具,探索云原生技术的魅力所在。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和实践技巧。
|
5天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
|
1月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
181 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
下一篇
无影云桌面