环境准备(三台机器)

设置 hostname(k8s1 为 master,其余为 node):

hostnamectl set-hostname --static k8s1  # 在对应机器上执行

所有机器配置 /etc/hosts

192.168.7.176 k8s1
192.168.7.125 k8s2
192.168.7.123 k8s3

安装 Docker(可选,默认使用 containerd):

apt-get install -y docker.io

安装 Master

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

# 指定使用 Docker:
# curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="server --docker" sh -

查看节点和 token:

kubectl get node -o wide
cat /var/lib/rancher/k3s/server/token

安装 Node

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
  INSTALL_K3S_MIRROR=cn \
  K3S_URL=https://k8s1:6443 \
  K3S_TOKEN=<token> sh -

kubectl Tab 补全

source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

部署 nginx Demo

mkdir -p k3s/nginx && cd k3s/nginx

nginx-deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80

nginx-service.yml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30080
  type: NodePort
kubectl create -f nginx-deployment.yml -f nginx-service.yml