K3S速度上手找点感觉
【摘要】 K3S 两天速通指南│ ARM64 / 8核16G 环境 · K3S v1.36.3+k3s1────────────────────Day 1:装好 + 跑起来安装(一条命令)# 安装 K3Scurl -sfL https://get.k3s.io | sh -# 验证k3s kubectl get nodes# 看到 Ready 就成功了# 配置 kubectl 快捷使用ln -s /u...
K3S 两天速通指南
│ ARM64 / 8核16G 环境 · K3S v1.36.3+k3s1
────────────────────
Day 1:装好 + 跑起来
- 安装(一条命令)
# 安装 K3S
官方源:curl -sfL https://get.k3s.io | sh -
用国内源:curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
INSTALL_K3S_MIRROR=cn sh -s - \
--system-default-registry "registry.cn-hangzhou.aliyuncs.com"
# 验证
k3s kubectl get nodes
# 看到 Ready 就成功了
# 配置 kubectl 快捷使用
ln -s /usr/local/bin/k3s /usr/local/bin/kubectl
mkdir -p ~/.kube && cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
- 跑个 Nginx 试试
# 部署 3 个 Nginx
kubectl create deployment nginx --image=nginx:alpine --replicas=3
# 看看 Pod
kubectl get pods -o wide
# 暴露服务(K3S 自带负载均衡,直接用)
kubectl expose deployment nginx --port=80 --type=LoadBalancer
# 拿到 IP 访问
kubectl get svc nginx
# curl http://<EXTERNAL-IP>
- 常用操作找感觉
# 扩缩容
kubectl scale deployment nginx --replicas=5
kubectl get pods -w # 实时看 Pod 变化,Ctrl+C 退出
# 缩回去
kubectl scale deployment nginx --replicas=1
# 更新镜像
kubectl set image deployment/nginx nginx=nginx:1.25-alpine
kubectl rollout status deployment/nginx
# 回滚
kubectl rollout undo deployment/nginx
# 进容器看看
kubectl exec -it $(kubectl get pods -l app=nginx -o jsonpath='{.items[0].metadata.name}') -- sh
# 看日志
kubectl logs -f deployment/nginx
# 删掉
kubectl delete deployment nginx
────────────────────
Day 2:存储 + 配置 + Ingress
- 存储试试(K3S 自带 local-path)
# 创建一个带持久存储的 Pod
cat << 'YAML' | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-pvc
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
name: storage-demo
spec:
containers:
- name: web
image: nginx:alpine
volumeMounts:
- name: data
mountPath: /usr/share/nginx/html
volumes:
- name: data
persistentVolumeClaim:
claimName: data-pvc
YAML
# 写点数据进去
kubectl exec storage-demo -- sh -c 'echo "<h1>Hello K3S</h1>" > /usr/share/nginx/html/index.html'
# 查看 PVC
kubectl get pvc
- ConfigMap 和 Secret
# ConfigMap - 管配置
kubectl create configmap app-config \
--from-literal=ENV=prod --from-literal=PORT=8080
# Secret - 管密码
kubectl create secret generic db-cred \
--from-literal=user=admin --from-literal=pass=secret123
# 看看(Secret 不会显示明文)
kubectl get configmap app-config -o yaml
kubectl get secret db-cred -o yaml
- Ingress 路由(K3S 自带 Traefik)
# 先部署两个服务
kubectl create deployment app1 --image=nginx:alpine
kubectl expose deployment app1 --port=80
kubectl exec deployment/app1 -- sh -c 'echo "App1" > /usr/share/nginx/html/index.html'
kubectl create deployment app2 --image=nginx:alpine
kubectl expose deployment app2 --port=80
kubectl exec deployment/app2 -- sh -c 'echo "App2" > /usr/share/nginx/html/index.html'
# 用 Ingress 按路径路由
cat << 'YAML' | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- path: /app1
pathType: Prefix
backend:
service:
name: app1
port:
number: 80
- path: /app2
pathType: Prefix
backend:
service:
name: app2
port:
number: 80
YAML
# 测试路由
kubectl get ingress
# curl http://<节点IP>/app1 → App1
# curl http://<节点IP>/app2 → App2
- 看看资源占用
kubectl top nodes
kubectl top pods
────────────────────
速查表
kubectl get pods -A # 看所有 Pod
kubectl get svc # 看服务
kubectl get ingress # 看路由
kubectl logs -f <pod> # 看日志
kubectl exec -it <pod> -- sh # 进容器
kubectl describe pod <pod> # 排查问题
kubectl delete <资源> <名字> # 删除
kubectl scale deploy <名> --replicas=N # 扩缩容
卸载
/usr/local/bin/k3s-uninstall.sh
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)