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
---