中文 | English
说明:
git checkout v1.21.5
git checkout v1.21.4
git checkout v1.21.3
git checkout v1.21.2
git checkout v1.21.1
git checkout v1.19.3
git checkout v1.19.2
git checkout v1.18.8
git checkout v1.18.6
git checkout v1.18.3
git checkout v1.16.5
git checkout v1.15.5
git checkout v1.15.4
git checkout v1.14.8
git checkout v1.14.7
git checkout v1.14.6
git checkout v1.14.3
git checkout v1.14.1
git checkout v1.13.0
git checkout v1.10.11
注:如果发现K8s版本与您的环境不一致,可以修改images.properties
文件指明所需镜像版本,欢迎Pull Request。
为 Docker daemon 配置镜像加速,参考阿里云镜像服务 或中科大镜像加速地址https://docker.mirrors.ustc.edu.cn
可选操作: 为 Kubernetes 配置 CPU 和 内存资源,建议分配 4GB 或更多内存。
从阿里云镜像服务下载 Kubernetes 所需要的镜像
在 Mac 上执行如下脚本
./load_images.sh
在Windows上,使用 PowerShell
.\load_images.ps1
说明:
Set-ExecutionPolicy RemoteSigned
命令。images.properties
文件自行加载你自己需要的镜像开启 Kubernetes,并等待 Kubernetes 开始运行
TIPS:
在Mac上:
如果在Kubernetes部署的过程中出现问题,可以通过docker desktop应用日志获得实时日志信息:
pred='process matches ".*(ocker|vpnkit).*"
|| (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'
/usr/bin/log stream --style syslog --level=debug --color=always --predicate "$pred"
在Windows上:
如果在Kubernetes部署的过程中出现问题,可以在 C:\ProgramData\DockerDesktop下的service.txt 查看Docker日志, 在 C:\Users\yourUserName\AppData\Local\Docker下的log.txt 查看Kubernetes日志
问题诊断:
如果看到 Kubernetes一直在启动状态,请参考
rm -fr '~/Library/Group\ Containers/group.com.docker/pki'
可选操作: 切换Kubernetes运行上下文至 docker-desktop (之前版本的 context 为 docker-for-desktop)
kubectl config use-context docker-desktop
验证 Kubernetes 集群状态
kubectl cluster-info
kubectl get nodes
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
或
kubectl create -f kubernetes-dashboard.yaml
检查 kubernetes-dashboard 应用状态
kubectl get pod -n kubernetes-dashboard
开启 API Server 访问代理
kubectl proxy
通过如下 URL 访问 Kubernetes dashboard
对于Mac环境
TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN
对于Windows环境
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN
选择 令牌
输入上文控制台输出的内容
或者选择 Kubeconfig 文件,路径如下:
Mac: $HOME/.kube/config
Win: %UserProfile%\.kube\config
点击登陆,进入Kubernetes Dashboard
说明:如果测试 Istio,不需要安装 Ingress
- 若安装脚本无法安装,可以跳转到该地址查看最新操作
安装
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.32.0/deploy/static/provider/cloud/deploy.yaml
验证
kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx
部署测试应用,详情参见社区文章
kubectl create -f sample/apple.yaml
kubectl create -f sample/banana.yaml
kubectl create -f sample/ingress.yaml
测试示例应用
$ curl -kL http://localhost/apple
apple
$ curl -kL http://localhost/banana
banana
删除示例应用
kubectl delete -f sample/apple.yaml
kubectl delete -f sample/banana.yaml
kubectl delete -f sample/ingress.yaml
kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.32.0/deploy/static/provider/cloud/deploy.yaml
可以根据文档安装 helm v3 https://helm.sh/docs/intro/install/在国内由于helm的cdn节点使用的是谷歌云所以可能访问不到,可以参考已存在的官方issue: https://github.com/helm/helm/issues/7028
# Use homebrew on Mac
brew install helm
# Add helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
# Update charts repo
helm repo update
如果在后续使用 helm 安装组件的过程中出现版本兼容问题,可以参考 通过二进制包安装
思路安装匹配的版本
# Use Chocolatey on Windows
# 注:安装的时候需要保证网络能够访问googleapis这个域名
choco install kubernetes-helm
# Change helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
# Update charts repo
helm repo update
安装 Wordpress
helm install wordpress stable/wordpress
查看 wordpress 发布状态
helm status wordpress
卸载 wordpress 发布
helm uninstall wordpress
说明:Istio Ingress Gateway和Ingress缺省的端口冲突,请移除Ingress并进行下面测试
可以根据文档安装 Istio https://istio.io/docs/setup/getting-started/
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.0 sh -
cd istio-1.5.0
export PATH=$PWD/bin:$PATH
在Windows上,您可以手工下载Istio安装包,或者把getLatestIstio.ps1
拷贝到你希望下载 Istio 的目录,并执行 - 说明:根据社区提供的安装脚本修改而来
.\getLatestIstio.ps1
istioctl manifest apply --set profile=demo
kubectl get pods -n istio-system
default
名空间开启自动 sidecar 注入kubectl label namespace default istio-injection=enabled
kubectl get namespace -L istio-injection
请参考 https://istio.io/docs/examples/bookinfo/
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>"
可以通过浏览器访问
samples/bookinfo/platform/kube/cleanup.sh
istioctl manifest generate --set profile=demo | kubectl delete -f -
Docker Desktop for Mac 开启并使用 Kubernetes Docker Desktop 可以方便的启用 Kubernetes 集群, 为学习 Kubernetes 提供了极大的便利, 但是由于众所周知的原因, 国内的网络下不能很方便的下载 Kubernetes 集群所需要的镜像, 导致集群启用失败. 这里提供了一个简单的方法, 利用 GitHub Actions 实现 k8s
hserver-for-docker 是一个 docker 自动构建工具,通过 DockerFile 自动构建运行管理的工具。 密码设置 项目更目录创建 auth.txt 设置好密码,使用就会要求密码了。 # 案例FROM registry.cn-shenzhen.aliyuncs.com/hserver-base/java8-maven:baseWORKDIR /usr/local/srcCOP
Docker Explorer for Visual Studio Code, 你身边的 Docker 管家 支持对 Docker Container 的管理,主要包括: 查看Container列表 移除 启动 重启 停止 查看运行日志 查看统计数据
Docker Mastery for Node.js Projects From a Docker Captain This repo is for use in my Udemy Course https://www.bretfisher.com/docker-mastery-for-nodejs Feel free to create issues or PRs if you find a p
流媒体服务和流媒体服务器的关键差异是什么?高效的运维能力是其中极其关键的差异之一,云计算+Docker+K8S让开源项目也能拥有这种能力,让每个人都能具备互联网流媒体服务能力,正如:旧时王谢堂前燕,飞入寻常百姓家! 为何要用k8s部署SRS集群? Simple(简单有效): 这玩意儿真的非常简单、高效便捷、直击服务部署和维护的痛点。羽扇纶巾,谈笑间强撸灰飞湮灭,不信一起来看QuickStart.
kubenet kubenet 配置1. K8S 安装 sudo kubeadm init --pod-network-cidr=192.168.0.0/162. 查看默认的 network-plugin $ sudo cat /var/lib/kubelet/kubeadm-flags.env KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-in