helm部署memcached服务
查找下载memcached的chart
helm search repo aliyun | grep mem
helm show chart aliyun/memcached
helm pull aliyun/memcached
tar xzvf memcached-2.0.1.tgz
cd memcached
这里用到了values.yaml的变量
安装memcached的Chart,镜像可以手工拉取,也可以程序自动拉取,还可以上传到harbor,修改values.yaml
拉取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亲和性配置
删除pdb.yaml
部署memcached
[root@mast01 memcached]# helm install memcached ./
NAME: memcached
LAST DEPLOYED: Mon Mar 31 14:03:42 2025
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
创建一个NodePort的svc
vi svc-ex.yaml
apiVersion: v1
kind: Service
metadata:
name: memcached-memcached-external
spec:
type: NodePort
ports:
- port: 11211
targetPort: memcache
nodePort: 30111
selector:
app: memcached-memcached
[root@mast01 templates]#
安装nc
yum install nc -y
#查看release发布状态
helm list
#删除release
helm delete memcached
#删除release会把release下对应的资源也删除
memecached的pod也被删除了
卸载memecached
helm uninstall memecached