要安全地运行kiam服务器,可以按照以下步骤进行操作:
kiam-policy.yaml
的YAML文件,并将以下内容复制到文件中:apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kiam-access
subjects:
- kind: ServiceAccount
name: default
namespace: your-namespace
roleRef:
kind: ClusterRole
name: kiam-access
apiGroup: rbac.authorization.k8s.io
将your-namespace
替换为kiam服务器所在的命名空间。
kubectl apply -f kiam-policy.yaml
这将在kiam服务器所在的命名空间中创建一个名为default
的服务账户。
kiam-deployment.yaml
的YAML文件,并将以下内容复制到文件中:apiVersion: apps/v1
kind: Deployment
metadata:
name: kiam
namespace: your-namespace
spec:
replicas: 1
selector:
matchLabels:
app: kiam
template:
metadata:
labels:
app: kiam
spec:
serviceAccountName: default
containers:
- name: kiam
image: uswitch/kiam:2
command: ["/kiam"]
args:
- "--auto-discover-base-arn"
- "--auto-discover"
- "--tls-cert-file=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
- "--tls-private-key-file=/var/run/secrets/kubernetes.io/serviceaccount/tls.key"
- "--socket-path=/var/run/kiam/socket.sock"
volumeMounts:
- name: certs
mountPath: /var/run/secrets/kubernetes.io/serviceaccount
readOnly: true
- name: socket
mountPath: /var/run/kiam
readOnly: false
volumes:
- name: certs
secret:
secretName: default-token-abcde
- name: socket
emptyDir: {}
将your-namespace
替换为kiam服务器所在的命名空间。
kubectl apply -f kiam-deployment.yaml
这将在kiam服务器所在的命名空间中创建一个名为kiam
的Deployment。
kubectl get pods -n your-namespace
确保kiam服务器的Pod状态为Running
。
以上步骤将安全地运行kiam服务器,并确保只有经过授权的实体可以访问Kubernetes集群。