k8s

install kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

docker

代理

/etc/docker/daemon.json

{
  "proxies": {
    "http-proxy": "http://192.168.0.100:10809",
    "https-proxy": "http://192.168.0.100:10809",
    "no-proxy": "localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,ingress-nginx.svc,default.svc"
  }
}

部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: <my-deployment>
spec:
  replicas: 3  # 部署3个Pod
  selector:
    matchLabels:
      app: <my-app>
  template:
    metadata:
      labels:
        app: <my-app>
    spec:
      containers:
      - name: <my-container>
        image: nginx:latest  # 使用nginx镜像作为示例
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: <my-service>
spec:
  selector:
    app: <my-app>  # 与Pod的标签匹配
  ports:
    - protocol: TCP
      port: 80  # Service暴露的端口
      targetPort: 80  # Pod的目标端口
  type: ClusterIP  # Service类型,ClusterIP是默认类型,只在集群内部暴露
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: <example-ingress>
spec:
  rules:
    - host: service-b.example.com  # 匹配另一个域名,可以忽略
      http:
        paths:
          - pathType: Prefix
            path: /foo
            backend:
              service:
                name: foo-service
                port:
                  number: 8080
          - pathType: Prefix
            path: /bar
            backend:
              service:
                name: bar-service
                port:
                  number: 8080
---