k8s安装记录

本文记录了k8s的安装过程,包含版本说明、主机规划、系统安装等内容。系统安装部分涉及系统配置、docker和cri - dockerd安装、k8s安装,还介绍了Master和Node节点配置,如Master节点安装calico及相关文件配置,最后给出常用命令和附件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

k8s安装记录

如无特别说明,则该步操作指在所有的机器上执行!!! 如无特别说明,则该步操作指在所有的机器上执行!!! 如无特别说明,则该步操作指在所有的机器上执行!!!

零、版本说明

  • Oracle VM VirtualBox
6.1
  • CentOS-7-x86_64-Minimal-2009
CentOS Linux release 7.9.2009 (Core)
  • Docker
Client: Docker Engine - Community
 Version:           26.0.2
 API version:       1.43 (downgraded from 1.45)
 Go version:        go1.21.9
 Git commit:        3c863ff
 Built:             Thu Apr 18 16:30:00 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.0
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       1331b8c
  Built:            Mon May 15 18:50:39 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

  • K8S
Kubernetes v1.28.0
  • 中间件版本
cri-dockerd-0.3.2-3

Calico

v3.26.1

一、主机规划

主机IP主机名主机角色
192.168.1.60master1k8s master
192.168.1.61node1k8s worder
192.168.1.62node2k8s worder

二、系统安装

2.1.系统配置

  • crontab -e 里面添加一行然后保存退出: 0 */1 * * * ntpdate ntp4.aliyun.com
yum install -y ntpdate

crontab -e

service firewalld stop

systemctl disable firewalld

sed -i "s/timeout=5/timeout=1/" /boot/grub2/grub.cfg

sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

setenforce 0

swapoff -a

sed -i "s/\/dev\/mapper\/centos-swap/#\/dev\/mapper\/centos-swap/" /etc/fstab

cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
vm.swappiness=0
EOF

modprobe br_netfilter

systemctl --system

cat >> /etc/hosts << EOF
192.168.1.60 master1
192.168.1.61 node1
192.168.1.62 node2
EOF

ssh-copy-id node1
ssh-copy-id node2
init 6

2.2.docker安装

yum install -y yum-utils

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install -y --setopt=obsoletes=0 docker-ce-24.0.0-1.el7

systemctl enable docker

cat >> /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://【这里换成自己的注册点】.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

service docker start

2.3.cri-dockerd安装

curl -OL https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm

rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm

修改 /usr/lib/systemd/system/cri-docker.service 文件的 ExecStart=/usr/bin/cri-dockerd 配置为如下:

ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

执行命令启动服务

systemctl daemon-reload && systemctl enable cri-docker && systemctl start cri-docker

2.4.k8s安装

cat >> /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
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

yum install -y --setopt=obsoletes=0 kubeadm-1.28.0 kubelet-1.1.28.0 kubectl-1.1.28.0

systemctl enable kubelet

systemctl restart containerd.service

2.5.Master节点配置

MASTER节点上执行
kubeadm init \
--apiserver-advertise-address=192.168.1.60 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.28.0 \
--pod-network-cidr=172.16.0.0/16 \
--cri-socket=unix:///var/run/cri-dockerd.sock

mkdir -p $HOME/.kube

/bin/cp -f /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装calico
  • tigera-operator.yaml和custom-resources.yaml就是calico的安装文件,github下载不了,我绑定到本文资源里了。
  • 如果能访问,可以使用带网址的命令安装
kubectl create -f tigera-operator.yaml

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
  • 查看,确保tigera-operator命名空间安装成功
kubectl get ns
  • 查看pod分配情况
kubectl get pods -n tigera-operator -o wide
  • custom-resources.yaml里面的网段需要和kubeadm init时指定的–pod-network-cidr网段保持一致
  • 下面命令里我把custom-resources.yaml里面的网段从192.168.0.0换成了172.16.0.0
sed -i "s/192.168/172.16/" custom-resources.yaml
  • 安装
kubectl create -f custom-resources.yaml

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml

2.6.Node节点配置

NODE节点上执行
kubeadm join 192.168.1.60:6443 --token 【这里贴kubeadm init生成的】 \
	--discovery-token-ca-cert-hash 【这里贴kubeadm init生成的】 \
	--cri-socket=unix:///var/run/cri-dockerd.sock

2.7.常用命令

#常用命令
kubectl get node #看node
kubectl get pod -n kube-system #看pods
journalctl -f -u kubelet.service #看日志
kubeadm token create --print-join-command #令牌过期
kubeadm reset --cri-socket=unix:///var/run/cri-dockerd.sock #重置k8s
rm -rf /var/lib/calico/ && sudo rm -rf /etc/cni/net.d/10-calico.conflist && sudo rm -rf /etc/cni/net.d/calico-kubeconfig #node需要在reset后删除

3.附件

在文章开头,如图位置:
在这里插入图片描述

### Kubernetes安装 Loki Helm Chart 配置教程 #### 添加 Loki Helm Repository 为了在 Kubernetes 中使用 Helm 来部署 Loki 日志管理系统,首先需要添加官方的 Loki Helm repository。通过执行以下命令可以完成此操作: ```bash helm repo add loki https://grafana.github.io/loki/charts ``` 这一步会将 Loki 的 Helm Charts 加入到本地 Helm 环境中[^1]。 #### 更新 Helm Repository 缓存 在继续之前,建议更新 Helm 的缓存以确保获取最新的 Chart 版本信息: ```bash helm repo update ``` 该命令能够同步远程仓库中的最新数据至本地环境。 #### 创建命名空间 (可选) 如果希望为 Loki 及其组件创建独立的命名空间,则可以通过如下方式实现: ```bash kubectl create namespace loki ``` 这样做的好处是可以更好地隔离不同服务之间的资源分配与权限控制[^3]。 #### 安装 Loki 使用 Helm 接下来就可以正式开始安装过程了,在默认设置下运行下面这条指令即可快速启动一个基础版本的服务实例: ```bash helm install loki-stack loki/loki-stack --namespace loki ``` 这里我们选择了 `loki-stack` 这个更全面的选项因为它不仅包含了核心功能还集成了其他有用的插件模块一起打包提供给用户直接使用而无需额外手动配置更多细节参数[^2]。 对于那些追求更高性能或者特殊需求场景下的使用者来说还可以进一步自定义调整各项具体属性值来满足实际业务情况的要求比如存储类型选择、持久化卷大小设定等等这些都可以通过修改 values 文件的方式来达成目标效果。 #### 访问 Grafana Dashboard 一旦成功完成了上述所有步骤之后应该就能够正常访问由这套组合拳所搭建起来的强大监控平台界面了,默认情况下 grafana 服务会被暴露出来允许外部连接请求进入查看内部运作状况图表展示等内容。 要找到对应的端口地址以及登录凭证等相关重要资料通常可以在 kubectl 输出的结果里边发现它们的位置所在之处: ```bash kubectl get svc -n loki ``` 同时也可以尝试查询 secrets 寻找初始密码账号等敏感信息安全保护措施方面的提示说明文档链接位置: ```bash kubectl get secret --namespace loki loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo ``` 以上就是关于如何在 Kubernetes 平台上借助于 Helm 工具轻松快捷地实施一套完整的 Loki 日志记录解决方案的整体流程概述。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值