部署前奏
我司用的是K8s,虽然我也挺熟练换镜像查日志等基础操作,甚至修改容器代码也做过,不过还是在自己本地搭一个,玩一下,以备后续。
- 检查cpu架构
uname -m
- 安装好docker
- 安装好wsl2
- 建议提前迁移wsl位置
部署流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.8.1/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/
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/kubeadm"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubelet"
sudo mv kubectl kubeadm kubelet /usr/local/bin/ sudo chmod +x /usr/local/bin/kubectl /usr/local/bin/kubeadm /usr/local/bin/kubelet
|
准备条件就绪,接下来:
1 2 3 4 5 6 7 8
| echo $KUBECONFIG
ls $HOME/.kube
kind create cluster --name develop
ls $HOME/.kube
|
来,照着攻略玩一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| kind get clusters kind delete cluster
docker stop develop-control-plane
docker start xxxxxx
cat << EOF > kind-3nodes.yaml kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker EOF
kind create cluster
|
1 2 3 4 5 6 7 8 9
| kubectl config get-contexts
kubectl config current-context
kubectl config use-context sit
KUBECONFIG=~/.kube/config1:~/.kube/config2 kubectl config view --merge --flatten > ~/.kube/config
|
部署应用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| apiVersion: apps/v1 kind: Deployment metadata: name: python-http-serv spec: selector: matchLabels: app: http template: metadata: labels: app: http spec: containers: - name: http-container image: python:3.9-alpine command: [ "python3", "-mhttp.server", "8080" ] ports: - containerPort: 8080
---
apiVersion: v1 kind: Service metadata: name: python-http-serv spec: type: NodePort selector: app: http ports: - port: 80 targetPort: 8080 nodePort: 30080
|
1 2 3 4 5 6 7 8 9 10
| $ docker pull python:3.9-alpine $ kind load docker-image python:3.9-alpine -n test-1.27
$ kubectl apply -f deployment_python_http_svc_nodeport.yaml
$ kubectl get po
$ curl http://localhost/
|
参考文献
阳明的博客
我看的github学习资源