目录
准备
术语说明
在线安装
离线安装
常用命令
Helm
安装helm
增加国内镜像仓库源、查看仓库列表、在仓库搜索chart
创建release
自定义chart配置文件
etcd命令
虚拟机192.168.255.130 安装k3s server,192.168.255.131安装k3s agent
修改/etc/hostname 和 /etc/hosts,让主机名不一样
kubeconfig
的文件。 kubectl
命令行工具使用 kubeconfig 文件来查找选择集群所需的信息,并与集群的 API 服务器进行通信。默认情况下,kubectl
在 $HOME/.kube
目录下查找名为 config
的文件。 你可以通过设置 KUBECONFIG
环境变量或者设置 --kubeconfig参数来指定其他 kubeconfig 文件192.168.255.130安装server
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
运行此安装后:
kubectl
、crictl
、ctr
、k3s-killall.sh
和 k3s-uninstall.sh
。/etc/rancher/k3s/k3s.yaml
,由 K3s 安装的 kubectl 将自动使用该文件。配置主节点 kubeconfig文件,配置到 .kube目录, 配置环境变量,默认寻找这个目录
mkdir -p /root/.kube/
cat /etc/rancher/k3s/k3s.yaml > /root/.kube/config
export KUBECONFIG=/root/.kube/config
设置随机启动
systemctl daemon-reload
systemctl enable k3s
启动服务
systemctl start k3s-agent systemctl status k3s-agent
192.168.255.131安装agent
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn NOBEST=true K3S_URL=https://192.168.255.130:6443 K3S_TOKEN=K10348463da1678047813219f0e5b75073aee773b6d70253701e4e11a6786bc43c4::server:08518e5883666d472f598e7cb586e9a5 sh -
K3S_URL
参数会导致安装程序将 K3s 配置为 Agent 而不是 Server。K3s Agent 将注册到在 URL 上监听的 K3s Server。K3S_TOKEN
使用的值存储在 Server 节点上的 /var/lib/rancher/k3s/server/node-token
中。
配置agent节点的kubeconfig文件,从主节点复制文件,修改server项
scp 172.21.75.72:/etc/rancher/k3s/k3s.yaml /etc/rancher/k3s/ (修改为主节点IP)
vi /etc/rancher/k3s/k3s.yaml (修改Server项为主节点IP)
server: https://192.168.255.130:6443
kubeconfig文件,配置到 .kube目录,默认寻找这个目录
mkdir -p /root/.kube/
cat /etc/rancher/k3s/k3s.yaml > /root/.kube/config
export KUBECONFIG=/root/.kube/config
设置随机启动
systemctl daemon-reload
systemctl enable k3s-agent
启动服务
systemctl start k3s-agent
systemctl status k3s-agent
下载安装脚本后执行
wget https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
安装
INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://192.168.255.130:6443 K3S_TOKEN=K10348463da1678047813219f0e5b75073aee773b6d70253701e4e11a6786bc43c4::server:08518e5883666d472f598e7cb586e9a5 ./k3s-install.sh
安装提示缺少container-selinux,找对应版本下载
container-selinux-2.195.1-1.module_el8.8.0+1254+78119b6e.noarch.rpm CentOS 8 Stream Download (pkgs.org)
查看k3s server状态
systemctl status k3s
查看k3s agent状态
systemctl status k3s-agent
重启,启动,停止,systemctl restart\start\stop
查看pod
kubectl get pods -n namespace
进入pod
kubectl exec -it rdba-3-gxk-0-0-11113366-6496f5d8d9-6jr5z -n namespace /bin/sh
退出pod
exit
看pod信息,看service信息类似
kubectl describe pod rdba-3-gxk-0-0-11113366-6496f5d8d9-6jr5z -n namespace
Helm使用的包格式称为 chart。 chart就是一个描述Kubernetes相关资源的文件集合,比如通过安装一个redis的chart,就安装了redis所需要的pod、service等等。
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
helm repo add azure http://mirror.azure.cn/kubernetes/charts
helm repo list
helm search repo redis
helm如果报错找不到kubernates,配置kubeconfig
export KUBECONFIG=/root/.kube/config
install过程有提示信息,或者helm status redis-test能看到提示,如何连接创建的redis
kubectl get svc能看到install创建出来的redis master和slave
按照提示得到redis密码,能连接master的clusterip
卸载release
helm uninstall redis-test
建立单master的配置文件,名为only-master.values。把redis设置为单例、设置了密码admin
## Cluster settings
cluster:
enabled: false
## Redis pod Security Context
securityContext:
enabled: false
## Use password authentication
usePassword: true
## Redis password (both master and slave)
password: "admin"
## Redis Master parameters
master:
persistence:
enabled: false
然后--dry-run一下,看看生成出来的yaml文件是否存在问题:
helm install redis-demo stable/redis -f ./only-master.values --dry-run
如果没有问题,则进行实际的安装
helm install redis-demo stable/redis -f ./only-master.values
安装后redis密码变成admin,单例。
不卸载release,升级为redis集群,建立master-slave配置文件,名为master-slave.values
## Cluster settings
cluster:
enabled: true
slaveCount: 1
securityContext:
enabled: false
## Use password authentication
usePassword: true
password: "admin"
## Mount secrets as files instead of environment variables
usePasswordFile: false
## Redis Master parameters
master:
persistence:
enabled: false
## Redis Slave properties
slave:
persistence:
enabled: false
--dry-run一下,看看生成出来的yaml文件是否存在问题;由于在系统中已经有redis-demo的release,因此使用upgrade来进行升级:
helm upgrade redis-demo stable/redis -f ./master-slave.values --dry-run helm upgrade redis-demo stable/redis -f ./master-slave.values
检查slave是否安装成功,以及是否同步成功
redis-cli -h `kubectl get svc redis-demo-slave -o=jsonpath="{.spec.clusterIP}"` -a admin
get name
redis-cli -h `kubectl get svc redis-demo-slave -o=jsonpath="{.spec.clusterIP}"` -a admin
redis-cli -hkubectl get svc redis-demo-master -o=jsonpath="{.spec.clusterIP}"` -a admin
# 输入命令测试一下
get age
etcdctl --write-out=table --endpoints http://172.21.75.156:2379 member list
etcdctl endpoint status --cluster --write-out=table