k8s入门

    84

k3s

准备

  • centos7.9-1 192.168.100.105
  • centos7.9-2 192.168.100.124 安装好docker,开启端口
yum update 
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun systemctl start docker # 启动docker 
systemctl enable docker # 开机自动启动
docker systemctl restart docker # 重启docker
firewall-cmd --zone=public --add-port=0-65535/udp --permanent
firewall-cmd --zone=public --add-port=0-65535/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=6443/tcp

安装k3s

master

curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" K3S_NODE_NAME="node1" sh -s -

k3s kubectl get node

cat /var/lib/rancher/k3s/server/node-token

systemctl restart k3s
systemctl restart k3s-agent
#云服务器
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_KUBECONFIG_MODE="644" K3S_NODE_NAME="node1" sh -s - --node-external-ip public_ip

cluster

检查是否ping通master curl -vk https://192.168.100.105:6443/cacerts

curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" K3S_NODE_NAME="node2" K3S_URL=https://192.168.100.105:6443 K3S_TOKEN=mynodetoken sh -
#云服务器
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_KUBECONFIG_MODE="644" K3S_NODE_NAME="node2" K3S_URL=https://内网ip:6443 K3S_TOKEN=token sh - 

k3s kubectl get node

kubectl get nodes kubectl get nodes -o wide

kubectl cluster-info

部署实例

# 部署
kubectl apply -f deployment.yml

kubectl apply -f service.yml
# 查看 pod
kubectl get po -o wide

# 查看 serivce
kubectl get svc


kubectl apply -f ingress.yml

卸载

/usr/local/bin/k3s-uninstall.sh

常用命令

#查看node的使用情况
kubectl top nodes
#查看 pod 的使用情况
kubectl top pod
kubectl top pod -n kube-system

kubectl get pods

kubectl get pods -o wide

kubectl get svc

kubectl get ingress

# 查看目前所有的pod
kubectl get po 
# 查看目前所有的replica set
kubectl get rs 
# 查看目前所有的deployment
kubectl get deployment
# 查看my-nginx pod的详细状态
kubectl describe po my-nginx 
# 查看my-nginx replica set的详细状态
kubectl describe rs my-nginx 
# 查看my-nginx deployment的详细状态
kubectl describe deployment my-nginx 

helm

https://helm.sh/zh/docs/intro/quickstart/

#安装
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
#修改配置路径
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

F&Q

  1. traefik不会转发X-Forwarded-For等头 添加/var/lib/rancher/k3s/server/manifests/traefik-config.yaml文件
#https://medium.com/@_jonas/traefik-kubernetes-ingress-and-x-forwarded-headers-82194d319b0e
# /var/lib/rancher/k3s/server/manifests/traefik-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: traefik
  namespace: kube-system
spec:
  valuesContent: |-
    additionalArguments:
      - "--entryPoints.web.proxyProtocol.insecure"
      - "--entryPoints.web.forwardedHeaders.insecure"

重启pod

#滚动重启方法(推荐)
kubectl rollout restart deployment/bytebase
kubectl rollout restart deployment nginx-deploy
#环境变量方法
kubectl set env deployment nginx-deploy DEPLOY_DATE="$(date)"
#副本扩/缩容
kubectl scale --replicas=0 deployment nginx-deploy
kubectl scale --replicas=N deployment nginx-deploy
kubectl scale --replicas=0 -f https://git/blog.yaml

kubectl describe pods my-pod
kubectl get services                          # 列出当前命名空间下的所有 services
kubectl get pods --all-namespaces             # 列出所有命名空间下的全部的 Pods
kubectl get pods -o wide                      # 列出当前命名空间下的全部 Pods,并显示更详细的信息
kubectl get deployment my-dep                 # 列出某个特定的 Deployment
kubectl get pods                              # 列出当前命名空间下的全部 Pods
kubectl get pod my-pod -o yaml                # 获取一个 pod 的 YAML
kubectl delete pods <pod> --grace-period=0 --force

下线节点

#配置节点不可调度
kubectl cordon <NODE_NAME>
#删除pod
kubectl delete pod -n <NAMESPACE> <POD_NAME>
#删除node
kubectl delete node <NODE_NAME>

附录

评论区
共有评论 0
暂无评论