基于M1芯片的Mac的k8s搭建

这篇具有很好参考价值的文章主要介绍了基于M1芯片的Mac的k8s搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基础环境

centos8

macbook pro M1

vm

vm安装centos8参考:MacBook M1芯片 安装Centos8 教程(无界面安装)_m1安装centos 8.4_Mr_温少的博客-CSDN博客

步骤

参考:

MacOS M1芯片CentOS8部署搭建k8s集群_Liu_Shihao的博客-CSDN博客

所有机器前置配置

1.设置对应的hostname

# 设置hostname
hostnamectl set-hostname k8s-node2

# 配置对应的集群hosts
cat >> /etc/hosts << EOF
172.16.237.134 k8s-master
172.16.237.135 k8s-node1
172.16.237.136 k8s-node2
EOF

2.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state

3.关闭selinux

#将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

4.关闭swap

swapoff -a  # 临时关闭,主机重启后k8s无法自动重启,需要重新关闭swap
vim /etc/fstab  # 永久关闭

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

5.允许 iptables 检查桥接流量

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sudo sysctl --system

6.更新yum源

# 进入 /etc/yum.repos.d/ 目录
cd /etc/yum.repos.d/

# 运行以下命令
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

7.处理冲突问题

yum erase podman buildah
# or
dnf remove podman buildah
dnf clean all && dnf check && dnf check-update


yum erase buildah
# or 
dnf remove buildah
dnf clean all && dnf check && dnf check-update


dnf remove -y containers-common-2:1-2.module_el8.5.0+890+6b136101
dnf clean all && dnf check && dnf check-update

7.部署docker环境

yum -y install docker-ce
systemctl enable docker && systemctl start docker

8.配置镜像源

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://iedolof4.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF


sudo systemctl daemon-reload

sudo systemctl restart docker

部署k8s集群

所有机器执行

9.配置k8s的yum源

#添加阿里的yum软件源,这里需要注意baseurl的地址是否是你虚拟机对应的版本
# 以下为mac m1 CentOS8 对应的地址
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

10.安装组件

#安装k8s(注意版本号,后面的版本需要对应)
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
systemctl enable kubelet

主节点配置

11.初始化master

kubeadm init \
      --apiserver-advertise-address=172.16.237.134 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.21.0 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16 \
      --ignore-preflight-errors=all
      
#-–apiserver-advertise-address 集群通告地址(master内网) 注意修改为master节点的address
#–-image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
#–-kubernetes-version K8s版本,与上面安装的一致
#–-service-cidr 集群内部虚拟网络,Pod统一访问入口
#-–pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

安装完后提示:

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 172.16.237.134:6443 --token lndyz6.73fpex2iqyhmrnly \
        --discovery-token-ca-cert-hash sha256:07411b0de4320ce16918555f033cc42ce9aba398a6d1089ef4b442227e3b590b 

12.master上执行:

# 在主节点执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#如果是root用户
export KUBECONFIG=/etc/kubernetes/admin.conf

如果token 24小时后过期需要重新生成:

kubeadm token create --print-join-command 

master安装网络组件

13.安装calico

curl https://docs.projectcalico.org/manifests/calico.yaml -O

kubectl apply -f calico.yaml

可能存在coredns镜像拉取不到的问题

参考: k8s的 coredns 的ImagePullBackOff 和ErrImagePull 问题解决_doker一直imagepullbackoff_之诚的博客-CSDN博客

docker pull coredns/coredns:1.8.0
docker tag [拉取的镜像id] registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

node节点运行加入master

14.加入集群

kubeadm join 172.16.237.134:6443 --token lndyz6.73fpex2iqyhmrnly \
        --discovery-token-ca-cert-hash sha256:07411b0de4320ce16918555f033cc42ce9aba398a6d1089ef4b442227e3b590b 

在master查看node状态:

kubectl get nodes

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

Dashboard部署

15.master执行

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

修改ClusterIP为NodePort

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
#type: ClusterIP 改为 type: NodePort

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

查看端口:

kubectl get svc -A |grep kubernetes-dashboard

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

访问dashboard

https://172.16.237.134:31071/

键盘输入:thisisunsafe,页面即可显示登录页面:

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

创建对应的账号:

#创建访问账号,准备一个yaml文件; vi dashaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
kubectl apply -f dashaccount.yaml

生成token:

#获取访问令牌
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

记录自己的token:

eyJhbGciOiJSUzI1NiIsImtpZCI6IkQ4M2tMTlBRYk9LM0QydEd1clF6cmF3elFPQlQ2Z25mVm92OWFCRTBtUzgifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWY0dGhrIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI4YmRkNGYxYy1lMGQ1LTQ2MmUtOWZlZS02NTZkNzU1MDU1ZWMiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.MuZFDFwQnjbk0wZLv-yeqxvoOZFqxNEdm1-fdZyVcDrCwIBkn0rJyH9DlYHLEj0K4oPJcTSC62TakmXdGDCSEyXYXZUu7v2UhjdVAybtryJ7PKVCt_13pE9eWwNhcx7Ngm3Mc1E-JhZgV2_MPSscQsuProX9MgdqriuTiovTEsX1Fu0p5hY7Kpk6jAMWaDLzmxRh_qjiQlbpKmyqudvJ8eSPnUlqD_0rj4rnbOIWYgil0vmC43etJVngdH9H2e_nAeK4nJC2iWph3diYKtW_5BtDsiPUmG7z8y0CP33ErI2kOlek_RZ_l7EffgDZd1IvXrSkN-m05bS2ZFyjdTus3w

输入token后登录:

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker

k8s常用命令

# 查看所有节点		
kubectl get nodes 		

#查看集群服务器信息
kubectl get nodes -o wide	
	
# 查看kube-system命名空间下的pod
kubectl get pods -n kube-system

#部署资源
kubectl apply -f calico.yaml

#删除部署
kubectl delete -f calico.yaml

#强制删除pod 命名空间为kube-system pod为name为coredns-545d6fc579-s2j64 
kubectl delete pod coredns-545d6fc579-s2j64 -n kube-system --grace-period=0 --force  

#查看所有名称空间  namespace简称ns
kubectl get ns    	

#创建名称空间						  
kubectl create ns 名称空间	

#删除名称空间			
kubectl delete ns 名称空间		

#查看默认default名称空间下的应用				
kubectl get pods			

#监控查看Pod
kubectl get pod -w		

#监控查看Pod				
watch -n 1 kubectl get pods	 	

#查看所有应用	
kubectl get pods -A 		

#查看该名称空间下的应用				
kubectl get pods -n 名称空间

#查看默认名称空间下更详细的应用信息 			
kubectl get pod -owide     				

# 查看所有pod使用的内存 
kubectl top pod -A 

#查看容器描述   默认是default命名空间
kubectl describe pod myk8snginx  

kubectl describe pod -n ruoyi-cloud ry-cloud-mysql-0

# 查看Pod运行日志
kubectl logs mynginx			

#进入容器		
kubectl exec -it mynginx -- /bin/bash	
kubectl exec -it redis -- redis-cli

其他配置

安装oh-my-zsh

yum install zsh -y
yum install git -y
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 重新导入k8s环境配置
export KUBECONFIG=/etc/kubernetes/admin.conf
# or
vim ~/.zshrc 
# 在最后一行添加
export KUBECONFIG=/etc/kubernetes/admin.conf
source ~/.zshrc

ipvs配置

  • 在kubernetes中service有两种代理模型,一种是基于iptables,另一种是基于ipvs的。ipvs的性能要高于iptables的,但是如果要使用它,需要手动载入ipvs模块。
  • 在每个节点安装ipset和ipvsadm:
yum -y install ipset ipvsadm
  • 在所有节点执行如下脚本:
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
  • 授权、运行、检查是否加载:
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
  • 检查是否加载:
lsmod | grep -e ipvs -e nf_conntrack

基于M1芯片的Mac的k8s搭建,kubernetes,macos,docker文章来源地址https://www.toymoban.com/news/detail-598029.html

到了这里,关于基于M1芯片的Mac的k8s搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Containerd+Kubernetes搭建k8s集群

    视频教程地址:https://space.bilibili.com/3461573834180825/channel/seriesdetail?sid=3316691 之前写了一篇基于docker安装kubernetes的文章,这篇文档我们来使用containerd来安装kubernetes,相较于docker,containerd运行容器的时候效率更高,并且可以兼容docker镜像。基于docker安装kubernetes的文章地址:ht

    2024年02月07日
    浏览(43)
  • kubernetes(K8S)学习(一):K8S集群搭建(1 master 2 worker)

    kubernetes官网 :https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl GitHub :https://github.com/kubernetes/kubeadm 本文 :使用kubeadm搭建一个3台机器组成的k8s集群,1台master节点,2台worker节点。 由于k8s安装较麻烦,为防止出现其他异常,特此

    2024年04月09日
    浏览(64)
  • Mac M1 Parallels CentOS7.9 Rancher + K8S + Gitlab + Jenkins +Harbor CICD

    机器名称 IP地址 角色 k8s+rancher高可用部署: https://blog.csdn.net/qq_41594280/article/details/135312148 rancher 10.211.55.200 管理K8S集群 k8svip 10.211.55.199 K8S VIP master01 10.211.55.201 K8S集群主节点 master02 10.211.55.202 K8S集群主节点 master03 10.211.55.203 K8S集群主节点 node01 10.211.55.211 K8S集群从节点 node02 10.

    2024年01月19日
    浏览(72)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要针对上篇文章的单 master 节点的 K8s 集群上搭建多 master 节点集群 和 LB 负载均衡服务器。 Kubernetes(K8S)集群搭建基础入门教程 虚拟机 IP 地址: IP 操作系统 主机名称 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    浏览(48)
  • Kubernetes(k8s)上搭建nacos集群

    你需要准备一个Kubernetes集群,如图我的集群已经准备完毕: nacos可以将配置文件存储到数据库当中,所以我们要先准备一个拥有nacos数据表结构的数据库,这样的数据库镜像我已经准备好了,当然你也可以自己制作这个镜像: 我之前写过一篇Kubernetes上安装数据库的文章:h

    2024年02月03日
    浏览(67)
  • 二进制搭建 Kubernetes与k8s集群搭建(一)

    目录 二进制搭建 Kubernetes v1.20     操作系统初始化配置 部署 docker引擎 部署 etcd 集群 准备签发证书环境 在 master01 节点上操作      生成Etcd证书 在 node01 节点上操作 在 node02 节点上操作 部署 Master 组件 在 master01 节点上操作 部署 Worker Node 组件 在所有 node 节点上操作 在 mas

    2024年02月06日
    浏览(66)
  • Linux搭建 Kubernetes(K8S)集群详情教程

    当搭建 Kubernetes 集群时,涉及的详细步骤可能较多,以下是详细的 Kubernetes 单节点集群搭建步骤: 步骤 1: 准备工作 确保满足以下基本要求: 一台运行 Ubuntu 18.04 或更高版本的机器。 2 GB 或更多内存。 2 个 CPU 核心或更多。 安装了 Docker。 步骤 2: 安装 Docker 步骤 3: 安装 kubea

    2024年01月17日
    浏览(60)
  • Kubernetes(K8S)快速搭建typecho个人博客

    Kubernetes(K8S)快速搭建typecho个人博客 K8S集群环境,搭建教程参考腾讯云Lighthouse组建跨地域Kubernetes集群 K8S集群面板,搭建教程参考Kubernetes集群管理面板的安装及使用 - 青阳のblog-一个计算机爱好者的个人博客 (hipyt.cn) 如果没有集群或者服务器不够可以通过传送门新购。 腾讯

    2024年02月04日
    浏览(57)
  • 【云原生-K8s-1】kubeadm搭建k8s集群(一主两从)完整教程及kubernetes简介

    🍁 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入!   Kubernetes(简称:k8s) 是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多

    2024年02月07日
    浏览(64)
  • 【k8s】搭建小巧完备的Kubernetes环境(minikube)

    容器技术的核心概念是容器、镜像、仓库,使用这三大基本要素我们就可以轻松地完成应用的打包、分发工作,实现“一次开发,到处运行”的梦想。 不过,当我们熟练地掌握了容器技术,信心满满地要在服务器集群里大规模实施的时候,却会发现容器技术的创新只是解决了

    2024年02月02日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包