DockerDesktop开启Kubernetes

DockerDesktop 开启 Kubernetes

Kubernetes 镜像

  1. 查看版本

image.png

  1. 下载 k8s-for-docker-desktop

https://github.com/AliyunContainerService/k8s-for-docker-desktop

image.png

  1. /k8s-for-docker-desktop-1.28.2 目录下执行 .\load_images.ps1

如果因为安全策略无法执行脚本,可以以管理员身份运行并执行 Set-ExecutionPolicy RemoteSigned

image.png

启动 Kubernetes

  1. 修改 hosts 地址
1
127.0.0.1 kubernetes.docker.internal
  1. 配置 Docker Engine
1
2
3
4
5
6
7
8
9
10
11
12
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
  1. 启动

如果启动失败,可以点击 Reset Kubernetes Cluster 后再重启

image.png

配置 Kubernetes

  1. 切换 Kubernetes 运行上下文
1
2
kubectl config get-contexts
kubectl config use-context docker-desktop

image.png

  1. 验证集群状态
1
kubectl cluster-info

image.png

  1. 安装 Kubernetes-dashboard

kubectl apply -f kubernetes-dashboard.yaml

下载 https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
执行 kubectl apply -f recommended.yaml

image.png

  1. 检查 kubernetes-dashboard 应用状态
1
kubectl get pod -n kubernetes-dashboard

image.png

  1. 开启 API Server 访问代理
1
kubectl proxy

image.png

  1. 访问 Kubernetes-dashboard

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

image.png

配置访问令牌

  1. 授权 kube-system 默认服务账号
1
kubectl apply -f kube-system-default.yaml

image.png

  1. 获取 Token
1
2
3
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-desktop --token="${TOKEN}"
echo $TOKEN

image.png

3.登录

image.png

image.png

安装 Helm

步骤
  1. 下载 https://github.com/helm/helm/releases
  2. 解压缩并添加到环境变量
  3. 验证 helm version
  4. 配置 chart 仓库 helm repo add stable http://mirror.azure.cn/kubernetes/charts/
  5. 更新 chart 仓库 helm repo update
  6. 查看可以被安装的 charts 列表 helm search repo stable
Helm 安装 wordpress
1
2
3
4
5
6
7
8
9
10
11
12
13
# 从 Artifact Hub 搜索 wordpress
helm search hub wordpress
# 从本地 helm 客户端中的仓库中搜索 wordpress
helm search repo wordpress

# 安装 wordpress
helm install wordpress stable/wordpress

# 查看 wordpress 状态
helm status wordpress

# 卸载 wordpress
helm uninstall wordpress

安装 Istio

步骤
  1. 下载 https://github.com/istio/istio/releases/tag/1.20.2
  2. 解压缩并添加到环境变量
  3. 验证 istioctl version
  4. 执行安装 istioctl manifest apply --set profile=demo
  5. 检查状态 kubectl get pods -n istio-system
  6. 为 default 名空间开启自动 sidecar 注入
    kubectl label namespace default istio-injection=enabled
    kubectl get namespace -L istio-injection
安装 Book Info(在 istio 目录下执行)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 部署示例应用
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
# 查看示例应用资源
kubectl get svc,pod

# 确认示例应用在运行中
kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"

# 创建 Ingress Gateway
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
# 查看 Gateway 配置
kubectl get gateway

# 确认示例应用可以访问
export GATEWAY_URL=localhost:80
curl -s http://${GATEWAY_URL}/productpage | grep -o "<title>.*</title>"

访问 http://localhost/productpage
1
2
3
4
5
# 删除实例应用
samples/bookinfo/platform/kube/cleanup.sh

# 卸载 Istio
istioctl manifest generate --set profile=demo | kubectl delete -f -
启动 kiali(在 istio 目录下执行)
1
2
3
4
kubectl apply -f samples/addons/kiali.yaml
istioctl dashboard kiali

http://localhost:20001/kiali