helm部署memcached服务
#安装memcached的Chart
docker load -i memcache_1_4_36.tar.gz
#如果k8s用的是docker做容器运行时,用docker load -i导出镜像
ctr -n=k8s.io images import memcache_1_4_36.tar.gz
#如果k8s用的是containerd做容器运行时,用ctr -n=k8s.io images导出镜像
#修改statefulset.yaml文件
cd memcached
rm -rf templates/pdb.yaml
cat templates/statefulset.yaml
apiVersion后面的value值变成apps/v1
spec下添加selector字段
selector:
matchLabels:
app: {{ template “memcached.fullname” . }}
chart: “{{ .Chart.Name }}-{{ .Chart.Version }}”
release: “{{ .Release.Name }}”
heritage: “{{ .Release.Service }}”
#删除affinity亲和性配置
helm install memcached ./
NAME: memcached
LAST DEPLOYED: Fri Jul 16 07:58:54 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Memcached can be accessed via port 11211 on the following DNS name from within your cluster:
memcached-memcached.default.svc.cluster.local
If you’d like to test your instance, forward the port locally:
export POD_NAME=$(kubectl get pods --namespace default -l “app=memcached-memcached” -o jsonpath={.items[0].metadata.name}")
kubectl port-forward $POD_NAME 11211
In another tab, attempt to set a key:
$ echo -e ‘set mykey 0 60 5\r\nhello\r’ | nc localhost 11211
You should see:
STORED
#验证memcache是否部署成功:
kubectl get pods
NAME READY STATUS RESTARTS AGE
memcached-memcached-0 1/1 Running 0 56s
memcached-memcached-1 1/1 Running 0 50s
memcached-memcached-2 1/1 Running 0 37s
yum install nc -y
测试memecached服务是否正常:
export POD_NAME=$(kubectl get pods --namespace default -l “app=memcached-memcached” -o jsonpath=“{.items[0].metadata.name}”)
kubectl port-forward $POD_NAME 11211
echo -e ‘set mykey 0 60 5\r\nhello\r’ | nc localhost 11211
5.3 release相关操作
#查看release发布状态
helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
memcached default 1 2021-07-16 08:04:44.172578607 +0800 CST deployed memcached-2.0.1
#删除release
helm delete memcached
release “memcached” uninstalled
#删除release会把release下对应的资源也删除
kubectl get pods
memecached的pod也被删除了